SQLite3 in Python 2.7 Rejecting Foreign Key Insert
Chris Angelico
rosuav at gmail.com
Sun Nov 23 00:41:35 EST 2014
On Sun, Nov 23, 2014 at 3:58 PM, Michael Torrie <torriem at gmail.com> wrote:
> On 11/22/2014 08:54 PM, llanitedave wrote:
> Well that DID make a difference! I used the %r marker, and the logger
> line gave me back:
>> "INFO:Related borehole_id is u'testbh3', of_borehole is 'testbh3'"
>>
>> So it looks like I need to change my foreign key string to a unicode
>> string. I'll be working on that...
>
> Or manually encode it to a UTF-8 byte string (just call .encode() on
> it). Sqlite probably only knows about UTF-8 when it comes to unicode.
Since it was a byte string sent to the database and a Unicode string
coming back, the solution would be to .decode() the byte string.
However, I doubt that's the issue; that's being done for you
implicitly by the lower-level connections. Also, in Python 2:
>>> u'testbh3' == 'testbh3'
True
So that's not your primary problem. You could try that, but I doubt
it'll solve anything for you.
Are you able to switch to Python 3, though? If you are, Unicode issues
tend to be a lot easier to resolve there.
ChrisA
More information about the Python-list
mailing list