如何在python 3中更改字节对象的编码?

时间:2015-10-23 14:51:57

标签: python json python-3.x encoding character-encoding

我写了一个程序来抓取网络以获得一个json字幕。那个json是用波斯语写的。我用了decode(“utf-8”),但我的角色是代码。 我该怎么办?

我的python是3.4,我的操作系统是windows8,这是我的代码:

with open('D:\\result.json', 'w') as fid:
    fid.write(urllib2.urlopen('http://www.ted.com/talks/subtitles/id/667/lang/fa').read().decode("utf-8"))

第一行是这样的: enter image description here

我用这种方式将我的字符串写入文件,但问题仍然存在:

scipy.optimize.fmin

1 个答案:

答案 0 :(得分:0)

你有JSON,阿拉伯字符转义为permitted by RFC 7159。您需要使用json对其进行解析才能撤消转义。完成后,您应该能够提取内容"值和打印(到文件,因为控制台上的Windows can't always display Unicode properly)。像这样:

>>> import urllib.request as urllib2
>>> result = json.loads(urllib2.urlopen('...').read().decode('utf8'))
>>> with open('example.txt', 'w', encoding='utf8') as f:
...     print(result['captions'][0]['content'], file=f)

然后,您应该能够使用您选择的编辑器打开example.txt。如果显示不正确,请务必将编码设置为UTF-8。