【发布时间】:2020-12-30 20:41:59
【问题描述】:
我有以下内容:
{
"z":"[{\"ItemId\":\"1234\",\"a\":\"1234\",\"b\":\"4567\",\"c\":\"d\"}]"
}
这是我从某个 API 获得的 json 响应的一部分。我需要用's 替换\"s。不幸的是,这就是我卡住的地方!
我得到的大多数答案只是将\ 替换为"" 或" ",所以这对我没有帮助。所以我的问题如下:
如何将\" 替换为':
- 在我复制粘贴内容的文件中?
- 如果我收到此作为对某个 API 调用的响应?
我尝试了以下方法来替换文件中的内容,但显然我只是将"s 替换为':
with open(file, "r") as f:
content = f.read()
new_content = content.replace("\"", "'")
with open(file, "w") as new_file:
new_file.write(new_content)
【问题讨论】:
-
嗯?
's 在 JSON 中无效。 -
您真的希望您的文件包含对象的 Python
repr(),而不是 JSON 表示吗?有更简单的方法可以做到这一点。 -
这取决于 JSON 究竟包含什么。如果 JSON 中的
\"仅表示引号字符,这更有可能,那么将其打印为\"是 python 可能会自动执行的操作,替换它只会执行content.replace('"', "'")(使用 '其他'引号)。另一方面,如果它实际上是两个字符,那么您希望通过编写文字反斜杠和引号'\\"'来替换反斜杠和引号的组合 -
myobject["z"] = json.loads(myobject["z"])会用 literal object 代替您的密钥;myobject["z"] = repr(json.loads(myobject["z"]))将用 Python repr 替换 JSON,这更符合您的实际要求。 -
好的,确认这就是您正在寻找的内容意味着我应该能够为此添加答案...
标签: python json string replace html-escape-characters