我在解析此json文件时遇到困难

时间:2019-11-20 13:52:59

标签: python

我正在尝试解析我从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等

2 个答案:

答案 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)