我有一个配置文件,我试图拆开,然后用更新的部分重新组装。配置文件是json格式的,我试图在插入到另一个json文件之前提取其中的组件进行更新。在
我发现的问题是JSON文件的部分使用"\/"
,当使用python的JSON库解码时,我得到"/"
。一旦将更新的值插入新的JSON文件中,我需要忠实地表示原始JSON,因此我需要缺少的"\/"
。在
我怀疑\
被解释为转义,并被JSON解码器丢弃。在
以下是我迄今为止所做努力的一个例子:
JSON字符串示例:
{"Markup\/0.xaml":"text\/xml; charset=utf-8; format=xml; clrtype=ESRI.ArcGIS.Client.Graphic","Markup\/1.xaml":"text\/xml; charset=utf-8; format=xml; clrtype=ESRI.ArcGIS.Client.Graphic"}
Python代码:
^{pr2}$打印结果:
u'Markup/0.xaml': u'text/xml; charset=utf-8; format=xml; clrtype=ESRI.ArcGIS.Client.Graphic',
u'Markup/1.xaml': u'text/xml; charset=utf-8; format=xml; clrtype=ESRI.ArcGIS.Client.Graphic'
是的,
\
反斜杠是转义字符,正确的JSON解码器会将这种字符视为转义。pythonjson解码器也不例外。见section 7 of RFC 7159:以及
(所以
\/
序列是escape solidus序列)。在您的输出是正确的;因为我希望像}这样的mimetype组件由正斜杠分隔,而不是由
text
和{\/
分隔。在然而,正斜杠(标准中的索里达)没有可以转义。相同的第7节说明了哪些字符必须转义:
因此,pythonjson编码器在生成JSON输出时不会转义正斜杠。在
相关问题 更多 >
编程相关推荐