首页 > 解决方案 > 从嵌套字典中的 N 个列表中选择值

问题描述

我正在尝试从 REST API 读取响应并将其放入 csv 文件中。我为响应编写了如下代码:

回复 :

data ={
        "status":
        {
            "type":"A",
            "code":"200",
            "severity":"11",
            "message":"",
            "correlationId":""   
        }

        ,

    "Data":{
            "Id":"11",
            "LineNo":"2",
            "requestedAmt":"100",
            "ReceivedDt":"",
            "FromDt":"",
            "ToDate":"",
            "Status":"N"
        }
    }

代码

result =[]    

with open('try.csv','w') as f:
    for rowo in data:
        for rowin in data[rowo]:
            result.append((data[rowo][rowin]))

    f.write(','.join(result)+"\n")

但是如果响应是嵌套的呢?可能有多个响应。在这种情况下,我需要从技术上从列表中选择值。但是,我如何遍历 N 个列表并从中选择值。

Response :

data ={
        "status":[
        {
            "type":"A",
            "code":"200",
            "severity":"11",
            "message":"",
            "correlationId":""   
        },
        {
            "type":"A",
            "code":"100",
            "severity":"13",
            "message":"",
            "correlationId":""   
        }
    ] #there could be more in same way,

    "Data":[
        {
            "Id":"11",
            "LineNo":"2",
            "requestedAmt":"100",
            "ReceivedDt":"",
            "FromDt":"",
            "ToDate":"",
            "Status":"N"
        },
            "Id":"13",
            "LineNo":"3",
            "requestedAmt":"100",
            "ReceivedDt":"",
            "FromDt":"",
            "ToDate":"",
            "Status":"F"
    ]
} #there could be more in same way

标签: pythonjson

解决方案


看起来您的响应是 JSON 格式,所以请尝试

import json
x = json.load('your_response')


data = open('your_response.csv', 'w')
csvwriter = csv.writer(data)

count = 0
for i in x:
  if count == 0:
         header = i.keys()
         csvwriter.writerow(header)
         count += 1
  csvwriter.writerow(i.values())

data.close()

推荐阅读