我正在尝试使用带有以下代码的xmltodict从输入xml文件创建一个json文件
import io, xmltodict, json
infile = io.open(filename_xml, 'r')
outfile = io.open(filename_json, 'w')
o = xmltodict.parse( infile.read() )
json.dump( o , outfile )
最后一行给我带来以下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 182, in dump
fp.write(chunk)
TypeError: must be unicode, not str
我想我需要更改编码。我的初始xml文件似乎是ascii。有关如何使这项工作的任何想法? 感谢
答案 0 :(得分:5)
您可以以二进制模式打开文件
outfile = io.open(filename_json, 'wb')
这也允许str
。
答案 1 :(得分:0)
unicode
和str
是Python 3之前的两种不同类型的对象。您可以通过强制将您的值转换为unicode
对象(基本上也是一个字符串)它:
my_var = unicode(my_str)