json到xml的合成和解析约定。

jsomark的Python项目详细描述


https://travis-ci.org/knowark/jsomark.svg?branch=masterhttps://codecov.io/gh/knowark/jsomark/branch/master/graph/badge.svg

JSON<;->;XML解析和撰写约定。在

什么是jsomark?在

jsomark是JSON到XML的转换约定。jsomark在 标准化格式并将其转换为XML。它应该把 操作并从XML文档生成JSON文档。在

使用

JSON文档创建XML,只需使用 json\u to\u xml函数:

fromjsomarkimportjson_to_xmljson_data=b'{"hello": "world"}'xml_data=json_to_xml(json_data)assertxml_data==b'<hello>world</hello>'

jsomark还支持更复杂的文档,如nested json 结构和Python json可序列化字典

^{pr2}$

属性

XML可以承载比JSON更多的信息(即元数据),这就是为什么 需要转换json文档格式的约定来匹配 原始XML语义。在jsomark中,属性定义为 符号“&;”

注意

属性值只能是textbytes

fromjsomarkimportjson_to_xmljson_data={"Device":{"Reference":{"&":{"ID":"XYZ2020","Serial":"S10987"}}}}xml_data=json_to_xml(json_data)assertxml_data==(b'<Device><Reference ID="XYZ2020" Serial="S10987"/></Device>')

如果带有属性的键也有text content,则 symbol“#”应该用来携带它:

fromjsomarkimportjson_to_xmljson_data={"Employee":{"Company":{"&":{"VAT":"900123765"},"#":"Servagro"}}}xml_data=json_to_xml(json_data)assertxml_data==(b'<Employee><Company VAT="900123765">Servagro</Company></Employee>')

注意

如果JSON键没有属性,它的值将变成文本 如前面的示例所示。在

列表

JSON文档中的列表被解释为重复元素 在生成的XML中。在

fromjsomarkimportjson_to_xmljson_data={"Order":{"Line":[{"&":{"ID":"1"},"#":"Chocolate Ice Cream"},{"&":{"ID":"2"},"#":"Banana Split"},{"&":{"ID":"3"},"#":"Caramel Cake"}]}}xml_data=json_to_xml(json_data)assertxml_data==(b'<Order><Line ID="1">Chocolate Ice Cream</Line>'b'<Line ID="2">Banana Split</Line>'b'<Line ID="3">Caramel Cake</Line></Order>')

名称空间

在jsomark中,名称空间作为单独的字典提供,其键 必须在json文档本身中使用的前缀。违约 命名空间应在命名空间字典的'None'键中设置,并且 它在json文档中的键不必加前缀:

注意

不要错过非默认命名空间键中的“:”分隔符 例如'isbn:编号在下面的示例中。在

fromjsomarkimportjson_to_xmlnamespaces={None:'urn:loc.gov:books','isbn':'urn:ISBN:0-395-36341-6'}json_data={"book":{"title":"Cheaper by the Dozen","isbn:number":1568491379}}xml_data=json_to_xml(json_data,namespaces=namespaces)assertxml_data==(b'<book xmlns="urn:loc.gov:books" xmlns:isbn="urn:ISBN:0-395-36341-6">'b'<title>Cheaper by the Dozen</title>'b'<isbn:number>1568491379</isbn:number></book>'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java当我点击MainActivity中的按钮以显示其他活动时,它不起作用   java游戏!框架:在请求之间获取控制器的组件/字段/对象   JavaBlackBerry:调用计算器并检索值?   java Struts2 jQuery插件提交按钮   java无法将更新的画布绘制到活动   java如何将Gson值放入HashMap   使用截取时出现java错误:RecyclerView:未连接适配器;跳过布局   java组织。冬眠HibernateException:在Hibernate搜索中编制索引时出错(在事务完成之前)   java Swagger服务器存根生成工作流   java JInternalFrame底部阴影问题   java nio缓冲区类中limit()的用法是什么   java水平回收器视图内部选项卡布局   java Maven无法找到依赖项   java如何管理不同应用程序实例的权限文件?