Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django、字符串编码、UTF-8和问题-AttributeError:&x27;光标';对象没有属性'_最后一次执行';_Python_Django_Unicode_Utf 8 - Fatal编程技术网

Python Django、字符串编码、UTF-8和问题-AttributeError:&x27;光标';对象没有属性'_最后一次执行';

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',然后事情很快就结

我在编写的Django命令中遇到了一个痛苦的错误,该命令正在解析一组数据。脚本解析数据,构建ORM对象,并尝试保存它。保存时,我得到以下错误- AttributeError:“Cursor”对象没有属性“\u last\u executed” 我的数据库设置为utf-8

在网上做了一系列的研究试图解决这个问题,但并没有产生太大的帮助。我找到的最接近的是这个

其中一个“修复”是对我的字符串调用unicode()。这很有效,直到我有了带撇号的字符串,比如u'aunt\u2019s',然后事情很快就结束了

因此,上述情况使我相信,最初的光标问题与编码有关。我对编码理解不够,无法真正理解这个问题

我试过手动编码,解码电话,但运气不好

我应该如何着手解决这个问题?这似乎是Django bug和理解编码的混合体

一些代码片段可能会有所帮助

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编码。