2016-12-08 2 views
0

Я пытаюсь проанализировать содержание иврита от json до xml и от xml до json. Когда я делаю это:using xml2json с данными на иврите

>>> from xml2json import json2xml 
>>> json = {"test": "בדיקה"} 
>>> json2xml(json) 

Я получаю ошибку:

Traceback (most recent call last): 
    File "<pyshell#43>", line 1, in <module> 
    json2xml(json) 
    File "C:\Python27\lib\xml2json.py", line 182, in json2xml 
    return ET.tostring(elem) 
    File "C:\Python27\lib\xml\etree\ElementTree.py", line 1126, in tostring 
    ElementTree(element).write(file, encoding, method=method) 
    File "C:\Python27\lib\xml\etree\ElementTree.py", line 820, in write 
    serialize(write, self._root, encoding, qnames, namespaces) 
    File "C:\Python27\lib\xml\etree\ElementTree.py", line 937, in _serialize_xml 
    write(_escape_cdata(text, encoding)) 
    File "C:\Python27\lib\xml\etree\ElementTree.py", line 1073, in _escape_cdata 
    return text.encode(encoding, "xmlcharrefreplace") 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 0: ordinal not in range(128) 

я пытался кодировать и декодировать с utf8, но не кажется, что это будет работать ... я использую питон 2,7

+0

Я предполагаю, что это сам xml2json сценарий, он возвращает 'ET.tost ring (elem) ', который должен быть' ET.tostring (elem, encoding = "utf-8") '?! –

+0

Какую версию xml2json вы используете? Вы установили его с помощью 'pip'? В моей среде 2.7 «pip install xml2json» устанавливает совершенно другой xml2json. –

+0

Чтобы ответить на мой собственный вопрос, OP использовал 'pip install https: // github.com/hay/xml2json/zipball/master' из https://github.com/hay/xml2json –

ответ

0

Используйте строку Unicode, например, так:

>>> from xml2json import json2xml 
>>> json = {"test": u"בדיקה"} 
>>> json2xml(json) 
'<test>&#1489;&#1491;&#1497;&#1511;&#1492;</test>' 
+0

добавив 'u' в результаты json-контента в ошибке «Неподдерживаемые символы при вводе» – kitsuneFox

+0

Похоже, что ивритские буквы приводят к этой ошибке – kitsuneFox

+0

@kitsuneFox - о чем вы говорите «контент JSON»? Вы говорите, что когда вы вырезаете и вставляете три строки в свой ответ, вы получаете другой результат? –