我有一个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循环遍历它,但由于“在字符串中”,列表被打破了。
所以...我需要逃避那些“让列表工作,否则它有明显的语法错误。
希望现在有意义。
由于
答案 0 :(得分:31)
您需要在替换中转义反斜杠才能打印出来。试试
replace('"','\\"')
答案 1 :(得分:5)
没有必要以艰难的方式去做。让Django serialize为您设置查询。
答案 2 :(得分:1)
我有同样的问题,我使用了python内置的转义方法。 这样的事情对我有帮助
[{"pk":"1","name":"John","size":"1/4\" "},{},{},etc]
价: -
http://docs.python.org/2/reference/lexical_analysis.html#string-literals
答案 3 :(得分:1)
使用
shlex.quote("string")
或
pipes.quote("string")
取决于python版本对我有用。
您可以在此处查看更多详细信息
https://github.com/python/cpython/blob/master/Lib/shlex.py#L281
答案 4 :(得分:0)
你说:
我必须为jQuery准备列表
所以我假设您正在尝试将字符串形式的Python对象输出到模板文件中,进行转换,以便输出字符串是有效的Javascript代码。
这相当于将它们序列化为JSON。
这是一个已经解决的问题,而不是用双引号等替换单引号,只需这样做:
import json
my_python_data = [{'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'}]
str_to_output_in_js_template = json.dumps(my_python_data)
这将为您处理所有转义并确保结果是有效的Javascript对象。