【发布时间】:2020-08-03 12:39:28
【问题描述】:
我有一个 python 脚本,它连接到 graphql API 并发送一个 POST,所以返回一个 JSON,这个 API 属于一个看板,它的卡片按其工作流程排列,我的问题,我有 152 张卡片,这个查询是我返回 143,因为有些卡片没有分配给人员,只存在于工作流中。
这会为所谓的'assignees': row ['assignees'][0]['fullname'] 生成索引错误,我将try/except 与索引过滤器放在一起,并让他再次将此行添加到字典中,并给出全名Null,但这似乎失败了,因为总卡片的数量是 153 而不是 143。有没有更优雅的方法来做这个数据工程?
py:
dataDict = {}
for row in ModelData:
try:
dataDict.update(
{ row["identifier"]:
{'title' : row["title"],
'description' : row["description"],
'assignees' : row['assignees'][0]['fullname'],
'createdAt' : row["createdAt"]}})
except IndexError as e:
dataDict.update(
{ row["identifier"]:
{'title' : row["title"],
'description' : row["description"],
'assignees' : "",
'createdAt' : row["createdAt"]}})
pass
数据示例:
{
"identifier": "x5g",
"title": "card name",
"description": "hello world",
"assignees": {"fullname": "John"},
"createdAt": "2020-04-04"
}
产生错误的原因:
{
"identifier": "x6g",
"title": "card name 2",
"description": "hello world",
"assignees": {"fullname": ""},
"createdAt": "2020-04-04"
}
【问题讨论】: