我有一个包含json格式数据的文本文件
{"Header":
{
"name":"test"},
"params":{
"address":"myhouse"
}
}
我试图从python文件中读取它并将其转换为json格式。我尝试过使用yaml和json库,并且使用这两个库,它将它转换为json格式,但它也将双引号转换为单引号
有没有办法将它解析为json格式,但保留双引号?
我不认为使用替换调用是一个有效的选项,因为它也将替换作为数据一部分的单引号
由于
答案 0 :(得分:0)
这样做:
import json
with open("file.json", "r") as f:
obj = json.load(f)
with open("file.json", "w") as f:
json.dump(obj, f, indent = 4[, ensure_ascii = False]) # if your string has some unicode characters, let ensure_ascii to be False.
答案 1 :(得分:-1)
您可以使用json.load
从文件加载json对象。
import json
with open("file.json", "r") as f:
obj = json.load(f)
生成的json对象使用'
而非"
分隔字符串,但您可以在此时轻松使用replace
调用。
In [6]: obj
Out[6]: {'Header': {'name': 'test'}, 'params': {'address': 'myhouse'}}
编辑:
虽然我一开始误解了这个问题,但您可以使用json.dumps
来编写json对象的字符串编码,该对象使用双引号作为标准要求。
In [10]: json.dumps(obj)
Out[10]: '{"params": {"address": "myhouse"}, "Header": {"na\'me": "test"}}'
目前还不清楚你要做什么,好像你正在尝试将json读入Python对象,使用什么字符串分隔符并不重要;如果您正在尝试将有效的json读入Python字符串,则可以在没有任何库的情况下读取该文件。
答案 2 :(得分:-1)
谢谢弥迦。转储就是这样做的
谢谢!