我试图从MySql数据库中获取一些tweet数据。 我在开发这段代码时遇到了大量的编码错误。最后一个for是我运行代码并使这个输出文件充满\uxx字符的唯一方法,如您所见:
[{..., "lang_tweet": "es", "text_tweet": "Recuerdo un d\u00eda de, *llamada a la 1:45*, \"Micho, me va a dar algo, estoy temblando, me tome un moster y un balium... Que me muero.!!\",...},...]
我一直在尝试不同的解决方案,但问题是我真的对编码和编码的抽象感到困惑。 我能做些什么来修复这个问题? 或者,更简单的方法是直接获取脏JSON并“解析”它对这些字符进行解码。在
如果你想看看我用来查询数据库的代码:
^{pr2}$如果我从它的所有应用程序中删除*.decode('latin1')
方法,则会出现以下错误:
Traceback (most recent call last):
File "test.py", line 51, in <module>
j = json.dumps(objects_list, default=date_handler)
File "C:\Users\Vichoko\Anaconda2\lib\json\__init__.py", line 251, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "C:\Users\Vichoko\Anaconda2\lib\json\encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "C:\Users\Vichoko\Anaconda2\lib\json\encoder.py", line 270, in iterencode
return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xed in position 13: invalid continuation byte
我真的搞不清字符串是如何从数据库提交到脚本的。在
谢谢你的阅读,任何想法都会很感激。在
编辑1:
在这里您可以看到JSON文件是如何导出的,文本text_tweet
key val中出现了编码错误:
https://github.com/Vichoko/real-time-twit/blob/master/auto_labeling/json/tweets_sismos/tweetsago20160.json
尝试将
charset
关键字参数传递给connect
,如example on pymysql's github所示。在使用
json_encode
时,请添加以下额外参数:这将给您}。在
í
而不是{(不要使用regexp,不要使用decode函数,等等,它们只会把你的洞挖得更深。)
相关问题 更多 >
编程相关推荐