Python中的方法/库,类似于C中的NewtonSoft#
我试图在Python中做一些类似的事情,比如Python中的方法/库,类似于C中的NewtonSoft#,python,c#,json,Python,C#,Json,我试图在Python中做一些类似的事情,比如NewtonSoft在C#中所做的事情 我有以下JSON文件: { "lead": { "Id": "abc", "CreateDate": "2020-16-04T17:55:47.229554", "Source": "Source" }, "cars": [ { "Id": 1, "Year": "1951",
NewtonSoft
在C#
中所做的事情
我有以下JSON文件:
{
"lead": {
"Id": "abc",
"CreateDate": "2020-16-04T17:55:47.229554",
"Source": "Source"
},
"cars": [
{
"Id": 1,
"Year": "1951",
"Make": "Willys"
},
{
"Id": 2,
"Year": "1950"
}
],
"Client": {
"LeadId": "ca5326c1fa14475ea6e8106c8c4a3d9d",
"FirstName": "Christopher",
"LastName": "Murphy"
}
}
如果我序列化JSON并在C#
中使用NewtonSoft
,则会得到以下结果:
"{\"lead\":{\"Id\":\"abc\",\"CreateDate\":\"2020-16-04T17:55:47.229554\",\"Source\":\"Source\"},\"cars\":[{\"Id\":1,\"Year\":\"1951\",\"Make\":\"Willys\"},{\"Id\":2,\"Year\":\"1950\"}],\"Client\":{\"LeadId\":\"ca5326c1fa14475ea6e8106c8c4a3d9d\",\"FirstName\":\"Christopher\",\"LastName\":\"Murphy\"}}"
但是
dump
和dumps
方法在Python中给出了其他结果,是否有其他方法在Python中实现相同的结果?对不起,误解了这个问题。您需要的是用replace或其他方法转义序列化的字符串
此外,对象的实际值与您在使用调试工具或IDE时看到的值之间可能存在一些差异。只要没有我不知道的奇怪边缘情况,您可以这样做
def serialize(json_fname):
with open(json_fname, 'r') as f:
json_lines=f.readlines()
out=''
for line in json_lines:
out+=line
out=out.replace(' ','')
return out.replace('\n','')
serialized=serialize('myjson.json')
# Later in the program:
# do(serialized)
Python的输出有什么不同?有人问了一些类似的问题,但是dump和dumps方法在Python中给出了其他结果-那么请您的问题包括不起作用的代码-例如,a.你好,欢迎使用SO!你为什么需要这种格式?如果你100%希望它完全像那样,你可以写1-20行代码,使之成为那样;类似于将open(json_fname,'r')作为f:json_lines=f.readlines()的
;out='';对于line-in-lines:out+=line
非常感谢这一帮助,但我的意思是当在C中使用NewtonSoft时,它会自动插入反斜杠“\”。例如“{\“lead\”:{\“Id\”:“abc\”,你知道Python中有类似的东西吗?实际上,在将这部分插入代码并将dump方法添加为文件后,我得到了想要的结果。非常感谢!