简体   繁体   English

Python-xmljson-保存西里尔符号

[英]Python - xmljson - save Cyrillic symbols

I have an xml, and I want to convert it to json using xmljson lib. 我有一个xml,我想使用xmljson lib将其转换为json。 The xml is following 的xml如下

<description>Описание товара</description>

in console I do the following 在控制台中,我执行以下操作

>>> from xmljson import badgerfish as bf
>>> from xml.etree.ElementTree import fromstring
>>> from json import dumps
>>> dumps(bf.data(fromstring('<description>Описание товара</description>')))

and then I get 然后我得到

>>> '{"description": {"$": "\\u041e\\u043f\\u0438\\u0441\\u0430\\u043d\\u0438\\u0435 \\u0442\\u043e\\u0432\\u0430\\u0440\\u0430"}}'

What can I do in order to get Описание товара instead of \\\О\\\п\\\и\\\с\\\а\\\н\\\и\\\е \\\т\\\о\\\в\\\а\\\р\\\а 我能为了得到做Описание товара而不是\\\О\\\п\\\и\\\с\\\а\\\н\\\и\\\е \\\т\\\о\\\в\\\а\\\р\\\а

Use ensure_ascii=False in the json.dumps : json.dumps使用ensure_ascii=False

import xmltodict
import json
s = '<description>Описание товара</description>'
d = xmltodict.parse(s)
json.dumps(d, ensure_ascii=False)
# '{"description": "Описание товара"}'

Note: you can decode string manually: 注意:您可以手动解码字符串:

st = "\\u041e\\u043f\\u0438\\u0441\\u0430\\u043d\\u0438\\u0435 \\u0442\\u043e\\u0432\\u0430\\u0440\\u0430"
st.encode('ascii').decode('unicode-escape')
# 'Описание товара'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM