首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Simplejson转储煤焦

Simplejson转储煤焦
EN

Stack Overflow用户
提问于 2010-05-03 20:52:28
回答 1查看 1.1K关注 0票数 0

我正在使用Django编程,需要将对象序列化为字符串,但我需要序列化字符串\/

举个例子:

代码语言:javascript
复制
simplejson.dumps({'id' : 'root\/leaf'})

我需要这样的输出:

代码语言:javascript
复制
{"id": "root\/leaf"}

但我明白了:

代码语言:javascript
复制
{"id": "root\\\\\\\\leaf"}
EN

回答 1

Stack Overflow用户

发布于 2010-05-03 22:56:09

JSON要求将文字\字符转义,并表示为\\。Python还将转义的文字\字符表示为\\。在他们之间,\变成了\\\\

请注意Python中的以下内容:

代码语言:javascript
复制
>>> "\\/" == "\/"
True

>>> {"id": "root\/leaf"} == {"id": "root\\/leaf"}
True

>>> {"id": "root\\/leaf"}["id"]
'root\\/leaf'

>>> print {"id": "root\\/leaf"}["id"]
root\/leaf 

Python正在打印额外的转义。因此,当您执行simplejson.dumps({"id": "root\/leaf"})时,python正在打印正确的结果{'id': 'root\\/leaf'},但是使用额外的{'id': 'root\\/leaf'}转义,因此是{'id': 'root\\\\/leaf'}。Python将每个\\视为单个字符。如果您写入一个文件,而不是一个字符串,您将得到{'id': 'root\\/leaf'}

编辑:我可以添加,文字JSON {"id": "root\/leaf"}将解码为{'id': 'root/leaf'},因为文字JSON \/映射到/字符。\//都是/的有效JSON编码;使simplejson使用\/而不是/来编码/似乎并不容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2761122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档