python - 从嵌套字典中的 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
解决方案
看起来您的响应是 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()
推荐阅读
- python - 从数据框创建数据集,以便每个属性组合具有相同数量的正/负样本
- javascript - 如何在启用 Windows 身份验证的情况下发送 API 请求?
- if-statement - 在 Rust 程序中,当条件为“假”时执行“if”语句,如何理解它?
- javascript - Javascript:如何用 % char 替换字符串中的子字符串
- c# - 防止对象类作为项目重复输入到列表框
- css - 字体真棒unicode不显示
- sql - 使用两个表中的行数更新表列
- ios - iOS Swift->蓝牙设备在设置->蓝牙->设备下不显示“I”图标
- pine-script - 我如何提出一个好问题?为什么使用 plotshape 时会出错?
- reactjs - 输入值 onChange - React Hooks