javascript - JavaScript 和 Python 2.7 中 JSON 字符串中的转义反斜杠

标签 javascript python json python-2.7 escaping

这是我要加载或解析的 JSON 字符串:

json_str = '[{"executable_path": "C:\\GCafeClient\\CafeClient.exe", "arguments": "-package 100003"}]'

如果我测试它,这是有效的 in json formatterhere (这也是有道理的——我已经转义了反斜杠。

但是当我在 Python 2.7 中执行 json.loads(json_str) 或在 Chrome 中的 JavaScript 中执行 JSON.parse(json_str) 时。我遇到错误:

ValueError: Invalid \escape: line 1 column 25 (char 24)

Uncaught SyntaxError: Unexpected token G

如果我这样说,那么它对两者都适用:

json_str = '[{"executable_path": "C:\\\\GCafeClient\\\\CafeClient.exe", "arguments": "-package 100003"}]'

为什么会这样?

最佳答案

您需要转义“\”两次,第一次是针对 Python/JavaScript 文字,第二次是针对 JSON。

因此 "C:\\GCafeClient" 将计算为 "C:\GCafeClient",它不被接受 JSON,因为它包含未转义的 '\' 并且将抛出一个错误。

另一方面,"C:\\\\GCafeClient" 将计算出 JSON 为 "C:\\GCafeClient",因此 '\' 是逃脱并接受。

关于javascript - JavaScript 和 Python 2.7 中 JSON 字符串中的转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35548542/

相关文章:

javascript - 使用 String 获取 JSON 属性

javascript - 即使具有相同的数据类型,也无法使用数据属性扩展 Typescript 中的接口(interface)

javascript - 如何模拟 HTML 无序列表行为?

javascript - 如何使用纯 Javascript(无 JQuery 或其他库)将一个 div 插入到另一个 div 中?

python - 寻找最接近值算法

python - 有没有一种简单的方法可以在 vim 中反转 json 的 pretty-print ?

javascript - 我的代码中出现意外行为

python - 用于 Python 自动完成的 Emacs 扩展

Python-eve : Is the schema respected when directly updating using current_app. data.driver.db[collection].update_one()?

json - 模块的元数据版本不匹配