i did as you instructed me but the error persists. This is the example code im talking about
Session = sessionmaker() session = Session() mapper = inspect(ThermafuserReading) readings = list() header = ["hex(id(object))", "is transient", "is pending", "is persistent", "is detached", "is deleted", "is in session"] #Open the csv file csvFilePath = "/Users/davidlaredorazo/Box Sync/Data/Zone4/1C1A/1C1A 2016-12-31.csv" with open(csvFilePath, 'r') as csvfile: reader = csv.reader(csvfile) componentId = 1 count = 0 reading = ThermafuserReading(None, componentId) for row in reader: if count == 0: count += 1 continue #print(row) timestamp = parse(row[0], None, ignoretz = True) reading.timestamp = timestamp new_object = copy.copy(reading) new_object.timestamp = timestamp readings.append(new_object) #print(new_object, mapper.identity_key_from_instance(new_object)) #session.add(new_object) row_format = "{:>15}" * (len(header) + 1) print("Before adding to the session") print(row_format.format("", *header)) for reading in readings: insp = inspect(reading) row = [hex(id(reading)), insp.transient, insp.pending, insp.persistent, insp.detached, insp.deleted, reading in session] print(row_format.format("", *row)) session.add_all(readings) print("\n#Elements in the session") print(session) for element in session: print(element) print("\nAfter adding to the session") print(row_format.format("", *header)) for reading in readings: insp = inspect(reading) row = [hex(id(reading)), insp.transient, insp.pending, insp.persistent, insp.detached, insp.deleted, reading in session] print(row_format.format("", *row)) These are some results I obtained by comparing wheter the objects in my list are in the session or not <https://lh3.googleusercontent.com/-88hJ0sjxu2M/WWhUYMhRSiI/AAAAAAAAAg0/kXliLRlFjZU-ZYwpMhUD5w_tVgNTOf9dgCLcBGAs/s1600/session_error1.png> <https://lh3.googleusercontent.com/-Vvuk4avT75o/WWhUj98bouI/AAAAAAAAAg4/FoPlU2HC3lk-GOC6qD1jihZKWIC-0SqXwCLcBGAs/s1600/session_error2.png> <https://lh3.googleusercontent.com/-mkaRplvoUes/WWhUoF74sqI/AAAAAAAAAg8/uztkwWPac-I1WxRDdj8-mQK2mgi7Fu9mACLcBGAs/s1600/session_error3.png> As you can observe, according to the results above the objects are indeed inside the session but for some reason when I try to print whats contained in the session by doing for element in session: print(element) I just get a None, what am I doing wrong? I dont see anything wrong in my code, I hope you can help me clarify this. Thanks in advance. I will attach both my code and the tests data in case you want to try it by yourself. On Thursday, July 13, 2017 at 8:27:04 AM UTC-5, Mike Bayer wrote: > > On Thu, Jul 13, 2017 at 12:31 AM, David Laredo Razo > <davidl...@gmail.com <javascript:>> wrote: > > Hello, I am using SQLAlchemy version 1.2.0b1 > > > > > > > > So far so go, the problem arises when I add readings to the session via > > session.add_all(readings). I only get the last element in my list added, > > e.g. > > there's no reason at all that would happen, other than what's in > "readings" is not what you'd expect. > > try iterating through every element in "readings" after the add_all(), > and do "obj in session". > > If some of these objects were from a different session, then they may > be "detached" as you put them in in which case they'd go into > session.identity_map, not session.new. > > > > > > > > for new in session.new: > > print(new, mapper.identity_key_from_instance(new_object)) > > > > <ThermafuserReading(thermafuserId = '1', timestamp = '2017-01-01 > 00:00:00')> > > (<class '__main__.ThermafuserReading'>, (datetime.datetime(2017, 1, 1, > 0, > > 0), 1)) > > > > > > Why is this behavior? I have a test code and the test data in case its > > needed to reproduce this behavior > > > > > > > > > > > > > > > > > > > > > > -- > > SQLAlchemy - > > The Python SQL Toolkit and Object Relational Mapper > > > > http://www.sqlalchemy.org/ > > > > To post example code, please provide an MCVE: Minimal, Complete, and > > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > > description. > > --- > > You received this message because you are subscribed to the Google > Groups > > "sqlalchemy" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to sqlalchemy+...@googlegroups.com <javascript:>. > > To post to this group, send email to sqlal...@googlegroups.com > <javascript:>. > > Visit this group at https://groups.google.com/group/sqlalchemy. > > For more options, visit https://groups.google.com/d/optout. > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
from sqlalchemy import Column, Integer, String, DateTime, Float, Boolean, ForeignKey from sqlalchemy.ext.declarative import declarative_base import csv import sqlalchemy from sqlalchemy.orm import sessionmaker from dateutil.parser import * import copy from sqlalchemy.inspection import inspect from sqlalchemy.orm.util import identity_key Base = declarative_base() class ThermafuserReading(Base): """Class to map to the Thermafuser Readings table in the HVAC DB""" __tablename__ = 'Thermafuser_Reading' _timestamp = Column('Time_stamp', DateTime, primary_key = True) _thermafuserId = Column('ThermafuserId', Integer, ForeignKey("Thermafuser.ThermafuserId"), primary_key = True) #Constructor def __init__(self, timestamp, thermafuserId): self._thermafuserId = thermafuserId self._timestamp = timestamp #properties @property def thermafuserId(self): return self._thermafuserId @thermafuserId.setter def thermafuserId(self, value): self._thermafuserId = value @property def timestamp(self): return self._timestamp @timestamp.setter def timestamp(self, value): self._timestamp = value def __str__(self): return "<ThermafuserReading(thermafuserId = '%s', timestamp = '%s')>" % (self._thermafuserId, str(self._timestamp)) def main(): Session = sessionmaker() session = Session() mapper = inspect(ThermafuserReading) readings = list() header = ["hex(id(object))", "is transient", "is pending", "is persistent", "is detached", "is deleted", "is in session"] #Open the csv file csvFilePath = "/Users/davidlaredorazo/Box Sync/Data/Zone4/1C1A/1C1A 2016-12-31.csv" with open(csvFilePath, 'r') as csvfile: reader = csv.reader(csvfile) componentId = 1 count = 0 reading = ThermafuserReading(None, componentId) for row in reader: if count == 0: count += 1 continue #print(row) timestamp = parse(row[0], None, ignoretz = True) reading.timestamp = timestamp new_object = copy.copy(reading) new_object.timestamp = timestamp readings.append(new_object) #print(new_object, mapper.identity_key_from_instance(new_object)) #session.add(new_object) row_format = "{:>15}" * (len(header) + 1) print("Before adding to the session") print(row_format.format("", *header)) for reading in readings: insp = inspect(reading) row = [hex(id(reading)), insp.transient, insp.pending, insp.persistent, insp.detached, insp.deleted, reading in session] print(row_format.format("", *row)) session.add_all(readings) print("\n#Elements in the session") print(session) for element in session: print(element) print("\nAfter adding to the session") print(row_format.format("", *header)) for reading in readings: insp = inspect(reading) row = [hex(id(reading)), insp.transient, insp.pending, insp.persistent, insp.detached, insp.deleted, reading in session] print(row_format.format("", *row)) main()
Time,['#1c1a_thermafuser/m073', '#1c1a_thermafuser/m135', '#1c1a_thermafuser/m134', '#1c1a_thermafuser/m078', '#1c1a_thermafuser/m190', '#1c1a_thermafuser/m186'] 2016-12-31 00:05:00,21.0,90.0,60.0,0.0,65.9,62.5, 2016-12-31 00:10:00,21.0,90.0,60.0,0.0,66.2,62.4, 2016-12-31 00:15:00,21.0,90.0,60.0,0.0,66.1,62.5, 2016-12-31 00:20:00,21.0,90.0,60.0,0.0,65.9,62.3, 2016-12-31 00:25:00,21.0,90.0,60.0,0.0,65.7,62.5, 2016-12-31 00:30:00,21.0,90.0,60.0,0.0,65.9,61.9, 2016-12-31 00:35:00,21.0,90.0,60.0,0.0,65.9,61.9, 2016-12-31 00:40:00,21.0,90.0,60.0,0.0,65.7,62.2, 2016-12-31 00:45:00,21.0,90.0,60.0,0.0,65.9,61.9, 2016-12-31 00:50:00,21.0,90.0,60.0,0.0,65.7,62.2, 2016-12-31 00:55:00,21.0,90.0,60.0,0.0,65.7,61.8, 2016-12-31 01:00:00,21.0,90.0,60.0,0.0,65.7,62.2, 2016-12-31 01:05:00,21.0,90.0,60.0,0.0,65.7,61.8, 2016-12-31 01:10:00,21.0,90.0,60.0,0.0,65.7,62.2, 2016-12-31 01:15:00,21.0,90.0,60.0,0.0,65.6,62.2, 2016-12-31 01:20:00,21.0,90.0,60.0,0.0,65.6,62.2, 2016-12-31 01:25:00,21.0,90.0,60.0,0.0,65.6,62.2, 2016-12-31 01:30:00,21.0,90.0,60.0,0.0,65.6,62.0, 2016-12-31 01:35:00,21.0,90.0,60.0,0.0,65.4,62.0, 2016-12-31 01:40:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 01:45:00,21.0,90.0,60.0,0.0,65.6,61.6, 2016-12-31 01:50:00,21.0,90.0,60.0,0.0,65.4,62.0, 2016-12-31 01:55:00,21.0,90.0,60.0,0.0,65.6,62.2, 2016-12-31 02:00:00,21.0,90.0,60.0,0.0,65.4,62.0, 2016-12-31 02:05:00,21.0,90.0,60.0,0.0,65.6,62.2, 2016-12-31 02:10:00,21.0,90.0,60.0,0.0,65.4,62.0, 2016-12-31 02:15:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 02:20:00,21.0,90.0,60.0,0.0,65.6,61.6, 2016-12-31 02:25:00,21.0,90.0,60.0,0.0,65.4,62.0, 2016-12-31 02:30:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 02:35:00,21.0,90.0,60.0,0.0,65.4,61.5, 2016-12-31 02:40:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 02:45:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 02:50:00,21.0,90.0,60.0,0.0,65.6,61.6, 2016-12-31 02:55:00,21.0,90.0,60.0,0.0,65.6,61.5, 2016-12-31 03:00:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 03:05:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 03:10:00,21.0,90.0,60.0,0.0,65.3,61.9, 2016-12-31 03:15:00,21.0,90.0,60.0,0.0,65.4,61.5, 2016-12-31 03:20:00,21.0,90.0,60.0,0.0,65.3,61.7, 2016-12-31 03:25:00,21.0,90.0,60.0,0.0,65.3,61.7, 2016-12-31 03:30:00,21.0,90.0,60.0,0.0,65.4,61.5, 2016-12-31 03:35:00,21.0,90.0,60.0,0.0,65.4,61.5, 2016-12-31 03:40:00,21.0,90.0,60.0,0.0,65.4,61.5, 2016-12-31 03:45:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 03:50:00,21.0,90.0,60.0,0.0,65.3,61.7, 2016-12-31 03:55:00,21.0,90.0,60.0,0.0,64.9,60.9, 2016-12-31 04:00:00,21.0,90.0,60.0,0.0,65.1,61.2, 2016-12-31 04:05:00,21.0,90.0,60.0,0.0,65.3,61.2, 2016-12-31 04:10:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 04:15:00,21.0,90.0,60.0,0.0,65.1,61.6, 2016-12-31 04:20:00,21.0,90.0,60.0,0.0,65.4,61.3, 2016-12-31 04:25:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 04:30:00,21.0,90.0,60.0,0.0,65.3,61.7, 2016-12-31 04:35:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 04:40:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 04:45:00,21.0,90.0,60.0,0.0,65.3,61.7, 2016-12-31 04:50:00,21.0,90.0,60.0,0.0,65.4,61.3, 2016-12-31 04:55:00,21.0,90.0,60.0,0.0,65.3,61.7, 2016-12-31 05:00:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 05:05:00,21.0,90.0,60.0,0.0,65.1,61.2, 2016-12-31 05:10:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 05:15:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 05:20:00,21.0,90.0,60.0,0.0,65.1,61.6, 2016-12-31 05:25:00,21.0,90.0,60.0,0.0,65.3,61.3, 2016-12-31 05:30:00,21.0,90.0,60.0,0.0,65.3,61.7, 2016-12-31 05:35:00,21.0,90.0,60.0,0.0,65.3,61.9, 2016-12-31 05:40:00,21.0,90.0,60.0,0.0,65.3,62.0, 2016-12-31 05:45:00,21.0,90.0,60.0,0.0,65.4,62.3, 2016-12-31 05:50:00,21.0,90.0,60.0,0.0,65.4,62.3, 2016-12-31 05:55:00,21.0,90.0,60.0,0.0,65.7,62.5, 2016-12-31 06:00:00,21.0,90.0,60.0,0.0,65.6,62.3, 2016-12-31 06:05:00,21.0,90.0,60.0,0.0,65.6,62.3, 2016-12-31 06:10:00,21.0,90.0,60.0,0.0,65.6,62.3, 2016-12-31 06:15:00,21.0,90.0,60.0,0.0,65.6,62.3, 2016-12-31 06:20:00,21.0,90.0,60.0,0.0,65.6,62.5, 2016-12-31 06:25:00,21.0,90.0,60.0,0.0,65.6,62.5, 2016-12-31 06:30:00,21.0,90.0,60.0,0.0,65.7,62.5, 2016-12-31 06:35:00,21.0,90.0,60.0,0.0,65.7,62.6, 2016-12-31 06:40:00,21.0,90.0,60.0,0.0,65.9,62.5, 2016-12-31 06:45:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 06:50:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 06:55:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 07:00:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 07:05:00,21.0,90.0,60.0,0.0,66.1,62.6, 2016-12-31 07:10:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 07:15:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 07:20:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 07:25:00,21.0,90.0,60.0,0.0,66.1,63.0, 2016-12-31 07:30:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 07:35:00,21.0,90.0,60.0,0.0,66.1,62.8, 2016-12-31 07:40:00,21.0,90.0,60.0,0.0,66.2,63.0, 2016-12-31 07:45:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 07:50:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 07:55:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 08:00:00,21.0,90.0,60.0,0.0,66.1,62.8, 2016-12-31 08:05:00,21.0,90.0,60.0,0.0,66.1,62.6, 2016-12-31 08:10:00,21.0,90.0,60.0,0.0,66.1,62.8, 2016-12-31 08:15:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 08:20:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 08:25:00,21.0,90.0,60.0,0.0,66.1,62.8, 2016-12-31 08:30:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 08:35:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 08:40:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 08:45:00,21.0,90.0,60.0,0.0,65.9,63.1, 2016-12-31 08:50:00,21.0,90.0,60.0,0.0,66.2,63.0, 2016-12-31 08:55:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 09:00:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 09:05:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 09:10:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 09:15:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 09:20:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 09:25:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 09:30:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 09:35:00,21.0,90.0,60.0,0.0,65.7,62.6, 2016-12-31 09:40:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 09:45:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 09:50:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 09:55:00,21.0,90.0,60.0,0.0,65.6,62.8, 2016-12-31 10:00:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 10:05:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 10:10:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 10:15:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 10:20:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 10:25:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 10:30:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 10:35:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 10:40:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 10:45:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 10:50:00,21.0,90.0,60.0,0.0,65.4,63.0, 2016-12-31 10:55:00,21.0,90.0,60.0,0.0,65.4,63.0, 2016-12-31 11:00:00,21.0,90.0,60.0,0.0,65.6,61.5, 2016-12-31 11:05:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 11:10:00,21.0,90.0,60.0,0.0,65.1,60.4, 2016-12-31 11:15:00,21.0,90.0,60.0,0.0,65.1,61.6, 2016-12-31 11:20:00,21.0,90.0,60.0,0.0,65.4,62.5, 2016-12-31 11:25:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 11:30:00,21.0,90.0,60.0,0.0,65.6,63.2, 2016-12-31 11:35:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 11:40:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 11:45:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 11:50:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 11:55:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 12:00:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 12:05:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 12:10:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 12:15:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 12:20:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 12:25:00,21.0,90.0,60.0,0.0,65.6,62.2, 2016-12-31 12:30:00,21.0,90.0,60.0,0.0,65.6,62.5, 2016-12-31 12:35:00,21.0,90.0,60.0,0.0,65.4,62.5, 2016-12-31 12:40:00,21.0,90.0,60.0,0.0,65.4,61.5, 2016-12-31 12:45:00,21.0,90.0,60.0,0.0,65.6,62.3, 2016-12-31 12:50:00,21.0,90.0,60.0,0.0,65.4,62.5, 2016-12-31 12:55:00,21.0,90.0,60.0,0.0,65.6,63.2, 2016-12-31 13:00:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 13:05:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 13:10:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 13:15:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 13:20:00,21.0,90.0,60.0,0.0,65.7,62.5, 2016-12-31 13:25:00,21.0,90.0,60.0,0.0,65.6,62.8, 2016-12-31 13:30:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 13:35:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 13:40:00,21.0,90.0,60.0,0.0,65.4,63.5, 2016-12-31 13:45:00,21.0,90.0,60.0,0.0,65.9,63.1, 2016-12-31 13:50:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 13:55:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 14:00:00,21.0,90.0,60.0,0.0,65.7,62.6, 2016-12-31 14:05:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 14:10:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 14:15:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 14:20:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 14:25:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 14:30:00,21.0,90.0,60.0,0.0,65.9,63.1, 2016-12-31 14:35:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 14:40:00,21.0,90.0,60.0,0.0,65.9,63.1, 2016-12-31 14:45:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 14:50:00,0.0,90.0,60.0,1.0,0.0,72.98, 2016-12-31 14:55:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 15:00:00,21.0,90.0,60.0,0.0,65.6,62.8, 2016-12-31 15:05:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 15:10:00,21.0,90.0,60.0,0.0,65.9,63.1, 2016-12-31 15:15:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 15:20:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 15:25:00,21.0,90.0,60.0,0.0,66.1,63.3, 2016-12-31 15:30:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 15:35:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 15:40:00,21.0,90.0,60.0,0.0,66.1,63.8, 2016-12-31 15:45:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 15:50:00,21.0,90.0,60.0,0.0,66.1,63.3, 2016-12-31 15:55:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 16:00:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 16:05:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 16:10:00,21.0,90.0,60.0,0.0,66.2,63.8, 2016-12-31 16:15:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 16:20:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 16:25:00,21.0,90.0,60.0,0.0,66.1,63.3, 2016-12-31 16:30:00,21.0,90.0,60.0,0.0,66.1,63.3, 2016-12-31 16:35:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 16:40:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 16:45:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 16:50:00,21.0,90.0,60.0,0.0,66.2,63.4, 2016-12-31 16:55:00,21.0,90.0,60.0,0.0,66.2,63.1, 2016-12-31 17:00:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 17:05:00,21.0,90.0,60.0,0.0,66.2,63.1, 2016-12-31 17:10:00,21.0,90.0,60.0,0.0,66.1,63.7, 2016-12-31 17:15:00,21.0,90.0,60.0,0.0,65.9,63.8, 2016-12-31 17:20:00,21.0,90.0,60.0,0.0,66.1,63.0, 2016-12-31 17:25:00,21.0,90.0,60.0,0.0,65.7,62.6, 2016-12-31 17:30:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 17:35:00,21.0,90.0,60.0,0.0,65.9,62.5, 2016-12-31 17:40:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 17:45:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 17:50:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 17:55:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 18:00:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 18:05:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 18:10:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 18:15:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 18:20:00,21.0,90.0,60.0,0.0,65.6,63.5, 2016-12-31 18:25:00,21.0,90.0,60.0,0.0,65.9,63.5, 2016-12-31 18:30:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 18:35:00,21.0,90.0,60.0,0.0,66.1,63.0, 2016-12-31 18:40:00,21.0,90.0,60.0,0.0,65.9,63.1, 2016-12-31 18:45:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 18:50:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 18:55:00,21.0,90.0,60.0,0.0,66.1,63.0, 2016-12-31 19:00:00,21.0,90.0,60.0,0.0,66.1,63.1, 2016-12-31 19:05:00,21.0,90.0,60.0,0.0,65.9,63.1, 2016-12-31 19:10:00,21.0,90.0,60.0,0.0,65.9,62.8, 2016-12-31 19:15:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 19:20:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 19:25:00,21.0,90.0,60.0,0.0,65.9,63.0, 2016-12-31 19:30:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 19:35:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 19:40:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 19:45:00,21.0,90.0,60.0,0.0,65.7,62.8, 2016-12-31 19:50:00,21.0,90.0,60.0,0.0,65.7,63.4, 2016-12-31 19:55:00,21.0,90.0,60.0,0.0,65.7,63.0, 2016-12-31 20:00:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 20:05:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 20:10:00,21.0,90.0,60.0,0.0,65.7,62.5, 2016-12-31 20:15:00,21.0,90.0,60.0,0.0,65.4,63.0, 2016-12-31 20:20:00,21.0,90.0,60.0,0.0,65.3,63.0, 2016-12-31 20:25:00,21.0,90.0,60.0,0.0,65.4,63.2, 2016-12-31 20:30:00,21.0,90.0,60.0,0.0,65.6,62.8, 2016-12-31 20:35:00,21.0,90.0,60.0,0.0,65.4,63.4, 2016-12-31 20:40:00,21.0,90.0,60.0,0.0,65.3,63.2, 2016-12-31 20:45:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 20:50:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 20:55:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 21:00:00,21.0,90.0,60.0,0.0,65.7,62.6, 2016-12-31 21:05:00,21.0,90.0,60.0,0.0,65.6,62.3, 2016-12-31 21:10:00,21.0,90.0,60.0,0.0,65.9,62.6, 2016-12-31 21:15:00,21.0,90.0,60.0,0.0,65.3,62.9, 2016-12-31 21:20:00,21.0,90.0,60.0,0.0,65.6,62.8, 2016-12-31 21:25:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 21:30:00,0.0,90.0,60.0,1.0,0.0,72.98, 2016-12-31 21:35:00,21.0,90.0,60.0,0.0,65.4,63.2, 2016-12-31 21:40:00,27.0,90.0,60.0,0.0,65.6,63.5, 2016-12-31 21:45:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 21:50:00,21.0,-1.0,-1.0,0.0,65.7,62.6, 2016-12-31 21:55:00,21.0,-1.0,-1.0,0.0,65.7,62.6, 2016-12-31 22:00:00,21.0,-1.0,-1.0,0.0,65.6,62.6, 2016-12-31 22:05:00,21.0,-1.0,-1.0,0.0,65.6,62.8, 2016-12-31 22:10:00,21.0,-1.0,-1.0,0.0,65.6,62.5, 2016-12-31 22:15:00,21.0,-1.0,-1.0,0.0,65.7,62.6, 2016-12-31 22:20:00,21.0,90.0,60.0,0.0,65.6,62.8, 2016-12-31 22:25:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 22:30:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 22:35:00,21.0,90.0,60.0,0.0,65.6,62.6, 2016-12-31 22:40:00,21.0,90.0,60.0,0.0,65.7,62.5, 2016-12-31 22:45:00,21.0,90.0,60.0,0.0,65.6,62.5, 2016-12-31 22:50:00,21.0,90.0,60.0,0.0,65.6,62.5, 2016-12-31 22:55:00,21.0,90.0,60.0,0.0,65.6,62.8, 2016-12-31 23:00:00,21.0,90.0,60.0,0.0,65.4,63.0, 2016-12-31 23:05:00,21.0,90.0,60.0,0.0,65.6,62.3, 2016-12-31 23:10:00,21.0,90.0,60.0,0.0,65.6,62.5, 2016-12-31 23:15:00,21.0,90.0,60.0,0.0,65.4,62.3, 2016-12-31 23:20:00,21.0,90.0,60.0,0.0,65.6,62.2, 2016-12-31 23:25:00,21.0,90.0,60.0,0.0,65.4,61.9, 2016-12-31 23:30:00,21.0,90.0,60.0,0.0,65.1,61.9, 2016-12-31 23:35:00,21.0,90.0,60.0,0.0,65.1,61.7, 2016-12-31 23:40:00,21.0,90.0,60.0,0.0,64.9,62.0, 2016-12-31 23:45:00,21.0,90.0,60.0,0.0,64.4,62.4, 2016-12-31 23:50:00,21.0,90.0,60.0,0.0,64.9,61.6, 2016-12-31 23:55:00,21.0,90.0,60.0,0.0,64.8,61.4, 2017-01-01 00:00:00,21.0,90.0,60.0,0.0,64.8,60.9,