我将JSON数据存储在变量data
中。
我想将其写入文本文件进行测试,因此我不必每次都从服务器获取数据。
当前,我正在尝试:
obj = open('data.txt', 'wb')
obj.write(data)
obj.close
并且我收到此错误:
TypeError:必须是字符串或缓冲区,而不是dict
如何解决此问题?
您忘记了实际的JSON部分-data
是一个字典,尚未进行JSON编码。编写为like this以实现最大兼容性(Python 2和3):
import json
with open('data.json', 'w') as f:
json.dump(data, f)
在现代系统(即Python 3和UTF-8支持)上,您可以使用以下命令编写更好的文件:>
import json
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
要获取<< [utf8
sort_keys
设置为True
,将indent
设置为4个空格字符,您就可以了。还应确保确保不会将ASCII代码写入您的JSON文件中:json.dump()
import json
data = {u'\u0430\u0431\u0432\u0433\u0434': 1} #{u'абвгд': 1}
with open('data.txt', 'w') as outfile:
json.dump(data, outfile)