Python Django、字符串编码、UTF-8和问题-AttributeError:&x27;光标';对象没有属性'_最后一次执行';
我在编写的Django命令中遇到了一个痛苦的错误,该命令正在解析一组数据。脚本解析数据,构建ORM对象,并尝试保存它。保存时,我得到以下错误- AttributeError:“Cursor”对象没有属性“\u last\u executed” 我的数据库设置为utf-8 在网上做了一系列的研究试图解决这个问题,但并没有产生太大的帮助。我找到的最接近的是这个 其中一个“修复”是对我的字符串调用unicode()。这很有效,直到我有了带撇号的字符串,比如u'aunt\u2019s',然后事情很快就结束了 因此,上述情况使我相信,最初的光标问题与编码有关。我对编码理解不够,无法真正理解这个问题 我试过手动编码,解码电话,但运气不好 我应该如何着手解决这个问题?这似乎是Django bug和理解编码的混合体 一些代码片段可能会有所帮助Python Django、字符串编码、UTF-8和问题-AttributeError:&x27;光标';对象没有属性'_最后一次执行';,python,django,unicode,utf-8,Python,Django,Unicode,Utf 8,我在编写的Django命令中遇到了一个痛苦的错误,该命令正在解析一组数据。脚本解析数据,构建ORM对象,并尝试保存它。保存时,我得到以下错误- AttributeError:“Cursor”对象没有属性“\u last\u executed” 我的数据库设置为utf-8 在网上做了一系列的研究试图解决这个问题,但并没有产生太大的帮助。我找到的最接近的是这个 其中一个“修复”是对我的字符串调用unicode()。这很有效,直到我有了带撇号的字符串,比如u'aunt\u2019s',然后事情很快就结
c=urllib2.urlopen(page_url)
soup=BeautifulSoup(c.read())
my_string = soup.find('title')['content']
my_ormObj = Foo()
foo.title = my_string
foo.save()
上面的代码片段就是我正在使用的那种流,在某些情况下会产生上面列出的错误。我尝试使用我的字符串并对其进行更改,它给出了我在第三段中列出的问题。好的,如果它与编码有关,那么您可能应该在保存之前将字符串编码为
utf-8
,这与数据库的编码相同
我建议你这样做:
foo.title = my_string.encode('utf-8')
foo.save()
可以公平地假设,myu_string
已经是Unicode,因为您发布了这个示例:u'aunt\u2019s,这让我觉得您在读它时出现了一些错误转储Django/Python抛出
重要提示:忘记那些unicode()
转换。如果字符串使用ASCII以外的其他编码(可能是),则使用该转换将抛出错误
这确实是:
我希望这有帮助 你能发一些代码吗?至少是您执行
unicode()
的部分。另外,您的字符串使用的是什么编码?老实说,没有太多的代码可以显示。我将用一些代码片段更新上面的内容,不确定它是否有助于思考什么是my_string
(提示:repr()
)?你是什么意思?抱歉,应该是soup.find('title')['content'](固定在上面)Paulo-我不确定字符串的编码是什么-我希望它们是BeautifulSoup/django返回的默认编码。我从未改变过。所以我希望它是unicode?谢谢你的回复。我试着按照你之前说的做了,只是又试了一次,再次检查。当我这样做时,我奇怪地得到了一个解码错误——UnicodeDecodeError:“ascii”编解码器无法解码242位的字节0xe2:序号不在范围内(128)有其他想法吗?:)这意味着我的_字符串不是unicode。在我看来,它是utf-8,因为“xe2”在utf-8中也是单引号。由于代码与问题中的代码完全相同,您从哪里得到错误?行?在这里,我让它打印出它试图转换的内容-看看Nice,但将有助于跟踪异常。此异常和其他异常之前包括utf-8编码。