【发布时间】:2016-04-24 20:47:26
【问题描述】:
关于 SO 中的 Unicode 解码有很多问题,而这一套都不符合我的需求。
说,我需要处理一些json数据,这部分看起来像这样:
u'message': {
u'body': u'\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435',
u'user_id': 374298,
u'title': u' ... ',
u'date': 1461496370,
u'read_state': 0,
u'id': 4325364,
u'out': 1
}
唯一的目标是摆脱 unicode 以在“body”行中获取人类可读的文本:
'message': {
'body': 'cпасибо большое',
'user_id': 374298,
'title': ' ... ',
'date': 1461496370,
'read_state': 0,
'id': 4325364,
'out': 1
}
只要有大量的json数据,我就修改了一些找到的python源代码如下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
filePath = "/home/user/foo.txt"
outPath = filePath + ".new"
outText = ""
inF = open(filePath, "rb")
fContent = unicode(inF.read(), 'utf-8')
inF.close()
for everysymbol in fContent:
if isinstance(everysymbol, unicode):
outText += everysymbol.decode('cp1251')
else:
pass
fContent = outText
outF = open(outPath, "wb")
outF.write(outText.decode("utf-8"))
outF.close()
不幸的是,此代码不会更改目标文件中的任何内容。如何真正将我的数据解码为人类可读的?
【问题讨论】:
-
把 rb 和 wb 改成 r 和 w