转义字符串中的引号

Har*_*rry 19 python regex escaping

我有一个python字典,例如:

[{"pk":"1","name":"John","size":"1/4" "},{},{},etc]
Run Code Online (Sandbox Code Playgroud)

那个大小是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'}]
Run Code Online (Sandbox Code Playgroud)

下一步我必须准备jQuery的列表,所以我这样更换,以便在json的正确语法中.mat_list = manufactured_pa​​rt.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"}]
Run Code Online (Sandbox Code Playgroud)

所以现在列表被发送到模板,我用jquery循环它,但由于"在字符串中",列表被打破了.

所以...我需要逃避那些"为了列表工作,否则它有明显的语法错误.

希望现在有意义.

谢谢

ste*_*ema 35

你需要在替换中逃避反斜杠才能打印出来.尝试

replace('"','\\"')
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我把它替换为('"','\"'),现在它适用于您的解决方案 (3认同)
  • 要小心.例如设置示例字符串```foo ='hurr"durr \\'``````print('string is"%s"'%foo.replace('"','\\"')) ```将打印```string is"hurr \"durr \```````print('foo ="%s"'%foo.replace('"','\"'))` ``变成```字符串是"hurr"durr \"```. (2认同)

Fab*_*tto 6

使用

shlex.quote("string")

或者

pipes.quote("string")

取决于对我有用的 python 版本。

您可以在这里查看更多详细信息

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


Ign*_*ams 5

没有必要以艰难的方式去做.让Django的序列化查询为您设置.