[sqlalchemy] Re: Writing values to Postgresql type Float
Thanks for responding, I am using Postgresql 8.3.8 and Postgis 1.4. I have tried using both DOUBLE_PRECISION and DOUBLE_PRECISION(asdecimal=True), with the same errors. thanks On Jan 18, 3:50 pm, Michael Bayer mike...@zzzcomputing.com wrote: Here's a tested example of DOUBLE_PRECISION using both float and Decimal versions. Make sure you're on a recent release of psycopg2: from sqlalchemy import Column, create_engine, Integer from sqlalchemy.orm import Session from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.dialects.postgresql import DOUBLE_PRECISION from decimal import Decimal Base = declarative_base() class dream4_eta_15km_pm10(Base): __tablename__='pm10_dream_rasters' id = Column(Integer, primary_key=True) # use float values max_pm10=Column(DOUBLE_PRECISION) # use Decimal values mean_pm10=Column(DOUBLE_PRECISION(asdecimal=True)) def __repr__(self): return dream4_eta_15km_pm10(%r, %r) % (self.max_pm10, self.mean_pm10) engine = create_engine('postgresql://scott:tiger@localhost/test', echo=True) Base.metadata.create_all(engine) sess = Session(engine) sess.add(dream4_eta_15km_pm10(max_pm10=76945.283959, mean_pm10=Decimal(7683.27835))) sess.commit() print sess.query(dream4_eta_15km_pm10).all() On Jan 18, 2011, at 3:24 PM, wilbur wrote: Hello, I am having problems using sqlalchemy to write values to Postgresq columns of type Float. I am getting sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt errors when I try to insert records. My Postgresql table is defined as: Column | Type | Modifiers + +-- max_pm25 | double precision | mean_pm25 | double precision | After importing the Postgresql dialect: from sqlalchemy.dialects.postgresql import * I define my sqlalchemy table as: class dream4_eta_15km_pm10(Base): __tablename__='pm10_dream_rasters' max_pm10=Column(DOUBLE_PRECISION) mean_pm10=Column(DOUBLE_PRECISION) Any help appreciated, Bill -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
Re: [sqlalchemy] Re: Writing values to Postgresql type Float
I am assuming you ran the script that I sent previously, and it produced the same errors.If this is not the case, please run that script. If it runs without errors, then the solution is to ensure your program is passing numerical values in the identical fashion as the test script, and that your table was created in postgresql using DOUBLE PRECISION as the data type. Assuming you ran the script I gave you and it produces the same errors, here is a psycopg2 script. Run it on your environment - if it fails, please report the issue to the psycopg2 list, including psycopg2 and postgresql version information, at: http://mail.postgresql.org/mj/mj_wwwusr/domain=postgresql.org?func=lists-long-fullextra=psycopg import psycopg2 conn = psycopg2.connect(user='scott', password='tiger', host='localhost', database='test') cursor = conn.cursor() cursor.execute( CREATE TABLE double_prec_test ( double_value DOUBLE PRECISION ) ) cursor.execute(INSERT INTO double_prec_test VALUES (%(value)s), {'value':7684.4933}) cursor.execute(SELECT * FROM double_prec_test) print cursor.fetchall() cursor.close() conn.close() On Jan 19, 2011, at 12:11 PM, wilbur wrote: Thanks for responding, I am using Postgresql 8.3.8 and Postgis 1.4. I have tried using both DOUBLE_PRECISION and DOUBLE_PRECISION(asdecimal=True), with the same errors. thanks On Jan 18, 3:50 pm, Michael Bayer mike...@zzzcomputing.com wrote: Here's a tested example of DOUBLE_PRECISION using both float and Decimal versions. Make sure you're on a recent release of psycopg2: from sqlalchemy import Column, create_engine, Integer from sqlalchemy.orm import Session from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.dialects.postgresql import DOUBLE_PRECISION from decimal import Decimal Base = declarative_base() class dream4_eta_15km_pm10(Base): __tablename__='pm10_dream_rasters' id = Column(Integer, primary_key=True) # use float values max_pm10=Column(DOUBLE_PRECISION) # use Decimal values mean_pm10=Column(DOUBLE_PRECISION(asdecimal=True)) def __repr__(self): return dream4_eta_15km_pm10(%r, %r) % (self.max_pm10, self.mean_pm10) engine = create_engine('postgresql://scott:tiger@localhost/test', echo=True) Base.metadata.create_all(engine) sess = Session(engine) sess.add(dream4_eta_15km_pm10(max_pm10=76945.283959, mean_pm10=Decimal(7683.27835))) sess.commit() print sess.query(dream4_eta_15km_pm10).all() On Jan 18, 2011, at 3:24 PM, wilbur wrote: Hello, I am having problems using sqlalchemy to write values to Postgresq columns of type Float. I am getting sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt errors when I try to insert records. My Postgresql table is defined as: Column | Type |Modifiers + +-- max_pm25 | double precision | mean_pm25 | double precision | After importing the Postgresql dialect: from sqlalchemy.dialects.postgresql import * I define my sqlalchemy table as: class dream4_eta_15km_pm10(Base): __tablename__='pm10_dream_rasters' max_pm10=Column(DOUBLE_PRECISION) mean_pm10=Column(DOUBLE_PRECISION) Any help appreciated, Bill -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
[sqlalchemy] Re: Writing values to Postgresql type Float
Thanks again, Your first script ran fine. I ended up doing something like this: session.add(test_floats(id=2,max_pm10=Decimal(str(76945.283959)), mean_pm10=Decimal(str(7683.27835 It was the only thing that eventually worked... On Jan 19, 10:37 am, Michael Bayer mike...@zzzcomputing.com wrote: I am assuming you ran the script that I sent previously, and it produced the same errors. If this is not the case, please run that script. If it runs without errors, then the solution is to ensure your program is passing numerical values in the identical fashion as the test script, and that your table was created in postgresql using DOUBLE PRECISION as the data type. Assuming you ran the script I gave you and it produces the same errors, here is a psycopg2 script. Run it on your environment - if it fails, please report the issue to the psycopg2 list, including psycopg2 and postgresql version information, at: http://mail.postgresql.org/mj/mj_wwwusr/domain=postgresql.org?func=li... import psycopg2 conn = psycopg2.connect(user='scott', password='tiger', host='localhost', database='test') cursor = conn.cursor() cursor.execute( CREATE TABLE double_prec_test ( double_value DOUBLE PRECISION ) ) cursor.execute(INSERT INTO double_prec_test VALUES (%(value)s), {'value':7684.4933}) cursor.execute(SELECT * FROM double_prec_test) print cursor.fetchall() cursor.close() conn.close() On Jan 19, 2011, at 12:11 PM, wilbur wrote: Thanks for responding, I am using Postgresql 8.3.8 and Postgis 1.4. I have tried using both DOUBLE_PRECISION and DOUBLE_PRECISION(asdecimal=True), with the same errors. thanks On Jan 18, 3:50 pm, Michael Bayer mike...@zzzcomputing.com wrote: Here's a tested example of DOUBLE_PRECISION using both float and Decimal versions. Make sure you're on a recent release of psycopg2: from sqlalchemy import Column, create_engine, Integer from sqlalchemy.orm import Session from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.dialects.postgresql import DOUBLE_PRECISION from decimal import Decimal Base = declarative_base() class dream4_eta_15km_pm10(Base): __tablename__='pm10_dream_rasters' id = Column(Integer, primary_key=True) # use float values max_pm10=Column(DOUBLE_PRECISION) # use Decimal values mean_pm10=Column(DOUBLE_PRECISION(asdecimal=True)) def __repr__(self): return dream4_eta_15km_pm10(%r, %r) % (self.max_pm10, self.mean_pm10) engine = create_engine('postgresql://scott:tiger@localhost/test', echo=True) Base.metadata.create_all(engine) sess = Session(engine) sess.add(dream4_eta_15km_pm10(max_pm10=76945.283959, mean_pm10=Decimal(7683.27835))) sess.commit() print sess.query(dream4_eta_15km_pm10).all() On Jan 18, 2011, at 3:24 PM, wilbur wrote: Hello, I am having problems using sqlalchemy to write values to Postgresq columns of type Float. I am getting sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt errors when I try to insert records. My Postgresql table is defined as: Column | Type | Modifiers + +-- max_pm25 | double precision | mean_pm25 | double precision | After importing the Postgresql dialect: from sqlalchemy.dialects.postgresql import * I define my sqlalchemy table as: class dream4_eta_15km_pm10(Base): __tablename__='pm10_dream_rasters' max_pm10=Column(DOUBLE_PRECISION) mean_pm10=Column(DOUBLE_PRECISION) Any help appreciated, Bill -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups sqlalchemy group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.