字符串中如何转义引号

39 投票
5 回答
123110 浏览
提问于 2025-04-16 19:09

我有一个Python字典,比如:

[{"pk":"1","name":"John","size":"1/4" "},{},{},etc]

这个字典里有个尺寸是1/4英寸,我该怎么处理这个引号呢?这样它才能显示为1/4"。

因为这是一个东西的列表,所以我不能像这样手动写1/4\"

我试过用replace('"','\"')来替换。

编辑一下:
原始的列表是在我的Django模型中的一个文本字段:

[{'pk': '91', 'size': '', 'name': 'Thread Flat For BF', 'quantity': '2'}, {'pk': '90', 'size': '', 'name': 'Blade Holders Straight ', 'quantity': '26'},{'size':'3"','name':'2m 1/4" Round bar', 'quantity':'43'},{'size':'5','name':'2m 1/8" Round bar', 'quantity':'4'}]

接下来的步骤是要为jQuery准备这个列表,所以我这样替换,以确保它的语法是正确的,适合json格式。
mat_list = manufactured_part.material_list.replace("'",'"')

然后我得到了这个列表:

[{"pk": "91", "size": "", "name": "Thread Flat For BF", "quantity": "2"}, {"pk": "90", "size": "", "name": "Blade Holders Straight ", "quantity": "26"},{"size':"3"","name':"2m 1/4" Round bar", "quantity":"43"},{"size":"5","name":"2m 1/8" Round bar", "quantity":"4"}]

现在这个列表被发送到模板中,我用jQuery循环遍历它,但因为字符串中的引号,列表出现了问题。

所以……我需要处理这些引号,让列表正常工作,否则就会出现明显的语法错误。

希望这样说清楚了。

谢谢

5 个回答

5

没必要把事情搞得那么复杂。让Django来帮你处理查询结果的序列化吧。

6

使用

shlex.quote("字符串")

或者

pipes.quote("字符串")

根据你使用的Python版本,这对我来说是有效的。

你可以在这里查看更多细节

https://github.com/python/cpython/blob/master/Lib/shlex.py#L281

70

你需要在替换的时候对反斜杠进行转义,这样才能让它正确显示。试试这个:

replace('"','\\"')

撰写回答