py 中对接口数据的简单分析处理

一般接口格式:返回的数据json字符串{"code":"0","success":true,"data":xxxxxxxxx}

 

但对于某些接口返回的数据较多时,

格式:字典内嵌套列表,列表内再嵌套字典

因此,对于这类的接口数据,该怎么进行简单的处理呢?比如将其以items数组形式,即key-value的形式打印出来,然后再去取想要的某一值。

例如:

data1 = {
  "code": "1",
  "success": True,
  "result": [
    {
      "id": "1",
      "name": "qika",
      "code": "1",
      "hasLink": "0",
      "parentId": "0",
      "children": [
        { "id": "2",
          "name": "qikala",
          "code": "2",
          "hasLink": "1",
          "parentId": "1",
          "childrenId": "1"},

        {
          "id": "3",
          "name": "qikastr",
          "code": "3",
          "hasLink": "2",
          "parentId": "2",
          "childrenId": "2"}
        ]
    }
  ]
}

处理方式:使用for循环,打印出json字符串内的items,即以key-value形式展示:

for i in data1["result"]:
    for key,value in i.items():
        print(key, ":", value)

结果:

 

 

但是查看控制台输出,还存在一个value值为一个list形式的值。

那么比如:我要指定获取result-->children-->list内的嵌套的第一个字典内的name:qikala,该如何做呢?

print(data1["result"][0]["children"][0]["name"])

可见正确获取到了:

 

 

 

用for循环来遍历获取呢?

# print(data1["result"][0]["children"][0]["name"])   #指定打印出result->children->list内,嵌套的第一个字典内:name的值:qikala

#用for来遍历 for i in data1["result"][0]["children"]: for key,value in i.items(): #遍历打印出字典 if value == "qikala": #if判断一下打印出的key-value当中是否存在有value为:qikala print("结果正确") #有的话返回结果正确,当然如果没有,肯定就会报错了 print(key, ":", value) #打印一下这个结果

结果:

 

posted on 2020-08-13 22:13  QiKa  阅读(176)  评论(0编辑  收藏  举报