我有一本字典,如下所示
[{
“a”: {
“uuid”: “4458”,
“created_at”: “2022-10-19 12:20”,
“source_platform”: “abc”,
“platform”: “UK”
},
“b”:[],
“c”: [],
“d”: [],
“f”: [],
“e”: [],
“g”: [],
“h”: [],
“i”: [],
“j”: {}
}]
如果键列表(如“B”或“j”)为空,则需要返回“no_info”。
但是当我使用这个函数时
def get_lead_first_platform(data: dict) -> str:
try:
if isinstance(data.get('b'), list):
if data.get('b')[0].get('ad_source'):
return data.get('b')[0].get('ad_source')
else:
return 'no_info'
except Exception as e:
print(f'{inspect.stack()[0][3]} -- {e}')
return None
它给出了错误get_lead_first_platform -- 'list' object has no attribute 'get'
3条答案
按热度按时间vohkndzv1#
您需要在访问列表之前进行空检查。
yacmzcpb2#
你并不像你说的那样“有一个字典”,你在这里有一个包含字典的列表,因此如果你把它传递给你的函数,你实际上是在一个列表上调用
.get()
。所以
data.get("b")
就是也许可以尝试执行
get_lead_first_platform(data[0])
。编辑:
修复
.get()
错误后,如果list
“B”为空,则data.get('b')[0]
语句将出现“index out of range”错误。s6fujrry3#
yes列表没有属性get,您应该尝试使用join。