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

unicodestrバージョン 3 より前の Python では、とは 2 つの異なるタイプのオブジェクトです。強制することで、値をunicodeオブジェクト (基本的には文字列でもあります) に変換できます。

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