使用json.dump方法时,传入open方法的文件时会报错
代码段:
with io.open('./douban.json','w',encoding='utf-8') as fp:
json.dump(list_data,fp=fp,ensure_ascii=False)
报错:
Traceback (most recent call last):
File "I:/IDEA/mypython/.idea/firstpython.py", line 21, in <module>
json.dump(list_data,fp=fp,ensure_ascii=False)
File "D:\Program Files (x86)\Anaconda\lib\json\__init__.py", line 190, in dump
fp.write(chunk)
TypeError: write() argument 1 must be unicode, not str
题主用的是py2吗?感觉提示的错误类型是py2时代的样子。我在py3环境下运行题主的代码有没有任何问题。如果不介意修改源码,你可以将fp.write(chunk) 改为fp.write(chunk.decode('utf8')) 试试看,无效可以再改回来。
可以升级到 Python 3 了,这是大趋势。