Создание json-файла из xml-файла в python с помощью xmltodict
Я пытаюсь создать JSON-файл из входного XML-файла, используя xmltodict со следующим кодом
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. Есть идеи, как заставить это работать? Спасибо
2 ответа
Решение
Вы можете открыть файл в двоичном режиме
outfile = io.open(filename_json, 'wb')
Это позволит str
также.
unicode
а также str
два различных типа объектов в Python до версии 3. Вы можете превратить свое значение в unicode
объект (который в основном также является строкой) путем приведения его:
my_var = unicode(my_str)