我正在尝试从这个列表中包含的字典中提取一个键-值对。这个列表是一组行,其中包含第三方应用程序中支付的行级信息。
[{'Amount': 45.0,'LinkedTxn': [{'TxnId': '129', 'TxnType': 'Invoice'}]}]
这个列表是一组行,其中包含第三方应用程序中支付的行级信息。
lines = payment.get("Line")
for line in lines:
link = line.get("LinkedTxn")[0]
if link.get("TxnType") == "Invoice":
line_no += 1
invoice = line.get("LinkedTxn").get("TxnType")
amount = line.get("Amount")
我的期望是能够得到line('Amount')
、LinkedTxn.TxnType
和LinkedTxn.TxnId
的值,然后将其保存到一个数组中以供以后使用。
相反,我可以很好地得到字典本身,但是当我试图拉取LinkedTxn
的值时,我得到了以下错误:
Traceback (most recent call last):
File "/Users/Archangel16179/Development/business/main.py", line 142, in <module>
payments = qb.get_payments("2021-01-01")
File "/Users/Archangel16179/Development/business/app/services/service.py", line 143, in get_payments
link = line.get("LinkedTxn")[0]
AttributeError: 'list' object has no attribute 'get'
当我在最后一行之前放置断点时,我可以调用amount = line.get('Amount')
而不会出现问题,然后写出amount
以接收正确的值。另外,我用whatis line
进行了检查,它如预期的那样作为字典返回。
(Pdb) link = line.get("LinkedTxn")[0]
(Pdb) pp link
{'TxnId': '129', 'TxnType': 'Invoice'}
(Pdb) whatis line
<class 'dict'>
(Pdb) whatis link
<class 'dict'>
我也试过在LinkedTxn
中的一行中获取列表,然后在下一行中获取第一个值,但结果没有改变。
1条答案
按热度按时间cclgggtu1#
你应该试试这个