python - 如何摆脱json文件中的所有'\'
问题描述
我在 python 中工作,我有一个如下所示的 json 文件:
"{\"label\": \"red\", \"seconds\": 20}"
"{\"label\": \"blue\", \"seconds\": 10}"
我想摆脱所有反斜杠和引号,看起来像这样:
{label: red, seconds: 20}
{label: blue, seconds: 10}
我附上了代码来展示我是如何获得 json 文件的,该文件由一串单独的 json 对象组成。
for value in finalOutputList:
newOutputString = json.dumps(value)
finalOutputString += (newOutputString + "\n")
with open('data.json', 'a') as outfile:
for item in outputString.splitlines():
json.dump(item, outfile)
outfile.write("\n")
解决方案
问题:您对对象进行双重编码,例如:
for value in finalOutputList:
newOutputString = json.dumps(value) # Encoded here with json.dumps
finalOutputString += (newOutputString + "\n")
with open('data.json', 'a') as outfile:
for item in outputString.splitlines():
json.dump(item, outfile). # Encoded once again unnecessarily
outfile.write("\n")
解决方案:去掉双重编码,只编码一次,例如:
for value in finalOutputList:
newOutputString = json.dumps(value) # leave this encoding
finalOutputString += (newOutputString + "\n")
with open('data.json', 'a') as outfile:
for item in outputString.splitlines():
outfile.write(item) # CHANGED to just write the already encoded json string here
outfile.write("\n")
您将其切换为相反的方式,因此您将json.dumps()
在写入文件时使用,然后留下您的 finalOutputString,但我推荐我刚刚向您展示的方式。
推荐阅读
- c# - 如何调整 Unity 2D 跳跃速度?
- javascript - 使用 JavaScript 在某个点停止滚轮滚动
- c# - CefSharp 显示银行屏幕并在最小化和最大化窗口后刷新
- terraform - 如何自动设置 terraform AWS 区域?
- javascript - 赛普拉斯陈旧选择器?“应找到内容”错误
- javascript - Vue:我可以将插槽中的 v-model 名称绑定到子元素中的数组吗?
- python - iptables 不丢弃 python 套接字
- c# - 应为 C# 方法名称,尝试通过函数调用解析数字
- c++ - ESP 音频套件语音识别示例不起作用
- android-studio - 如何更改选项卡名称?