我正在尝试解析我从API调用中收到的json文件。
"[{\"ip\":\"xx.xx.xxx.xx\",\"dns\":\"xxx.net\",\"netbios\":\"xxxxx\",....
我将其转储到这样的文件中:
with open('jayo.json', 'w') as j:
json.dump(r.text, j) #r.text being the API response
json应该只是一个简单的字典,对吗?为什么我的所有反斜杠?
我如何单独打印每个值? IP / DNS等
答案 0 :(得分:2)
您是要在Python中加载JSON,还是将其转储到文件中? (或两者都有?)
json.dump
用于将Python对象写入JSON文件。 r.text
只是一个字符串,因此结果格式看起来像JSON中的单个字符串(包括所有转义的引号),而不是完整的对象。
大概您想在使用json.loads
之前使用json.dump
将JSON字符串加载到Python对象中。或者,如果要将JSON字符串直接转储到文件中,则可以只使用j.write(r.text)
。
答案 1 :(得分:2)
您将以str
的形式收到API响应,您需要在转储之前使用json加载它。 json.dump
通常用于集合而不是字符串,因为它会为您完成转换。
data = json.loads(r.text)
with open('jayo.json', 'w') as j:
json.dump(data, j)
如果在覆盖文件之前需要文件中的数据,请使用
with open('jayo.json', 'r') as j:
data = json.load(j)