3

我正在尝试使用带有以下代码的 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。关于如何使这项工作的任何想法?谢谢

4

2 回答 2

5

您可以以二进制模式打开文件

outfile = io.open(filename_json, 'wb')

这也将允许str

于 2013-02-06T08:49:05.413 回答
0

unicode并且str是 Python 版本 3 之前的两种不同类型的对象。您可以unicode通过强制将值转换为对象(基本上也是一个字符串):

my_var = unicode(my_str)
于 2013-02-06T08:26:23.330 回答