My solution didn't work.  I was able to get my Portuguese data to load by 
decoding it in ISO-8859-1, but by decoding I lose all the special 
characters like tildes.

So I still don't understand how to get the engine to accept my data 
properly.

J.D.

On Tuesday, March 3, 2015 at 3:00:24 PM UTC-7, J.D. wrote:
>
> I actually figured this out.....
>
> It had nothing to do with my SQLAlchemy create_engine configuration.
>
> The data I was trying to create an object with was in ISO-8859-1 format, 
> so I just had to construct my Object the text decoded properly.
>
> Once I did this, the data was inserted into my sqlite3 table just fine.
>
>
> On Tuesday, March 3, 2015 at 1:58:32 PM UTC-7, J.D. wrote:
>>
>> Hi,
>>
>> I am getting the following error, when I try to execute code to insert a 
>> new row into one of my tables, and I've googled for answers and tried 
>> everything I could find online and nothing seems to resolve the issue.
>>
>> sqlalchemy.exc.ProgrammingError: (ProgrammingError) You must not use 
>> 8-bit bytestrings unless you use a text_factory that can interpret 8-bit 
>> bytestrings (like text_factory = str)
>>
>> *I am using the following software:*
>>
>> SQLAlchemy v0.9.8
>>
>> SQLite 3.8.8.2.
>>
>> *I am creating my engine as follows,*
>>
>> engine = create_engine('sqlite+pysqlite:///prototype.db', module=sqlite)
>>
>> #engine.raw_connection().connection.text_factory = str
>>
>> #engine.connect().connection.connection.text_factory = str
>>
>> session = sessionmaker(bind=engine)()
>>
>> meta.Base.metadata.bind = engine
>>
>> meta.Base.metadata.create_all(engine)
>>
>> *The object I am trying to insert via session.add(..) has a structure 
>> similar to the following: (shortened for brevity)*
>>
>> ..
>>
>>     id = Column(Integer, primary_key=True, unique=True, nullable=False)
>>
>>     title = Column(String, nullable=False)     // This is the column 
>> that gets the Portuguese data with unicode characters -- I've tried using 
>> the column type Unicode
>>
>>     # title = Column(Unicode, nullable=False)
>>
>>     book_id = Column(Integer, nullable=False)
>>
>>     code = Column(Integer, nullable=False)
>>
>> ...
>>
>> *I've tried setting the text_factory on the connection to no avail.  I'm 
>> at a loss how to fix this so I can insert my data with unicode chars.*
>>
>> Here is the SQL that is generated for the insert
>>
>> It is highly recommended that you instead just switch your application to 
>> Unicode strings. u'INSERT INTO books (title, book_id, code) VALUES (?, ?, 
>> ?)' ('Demana/Blitzer: Pr\x8e-c\x87lculo, 2e', '93810', 'removed')
>>
>> I would appreciate some insight to how to fix this issue so I can insert 
>> my data.
>>
>> Thanks,
>>
>> J.D.
>>
>>
>>
>>
>>

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to