亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

訪問 Python 列表中的字典

訪問 Python 列表中的字典

繁星coding 2021-09-11 20:19:37
我有一個列表,其中包含這樣的字典:json_obj = [[{'id': None},{'id': '5b98d01c0835f23f538cdcab'},{'id': '5b98d0440835f23f538cdcad'},{'id': '5b98d0ce0835f23f538cdcb9'}],[{'id': None},{'id': '5b98d01c0835f23f538cd'},{'id': '5b98d0440835f23f538cd'},{'id': '5b98d0ce0835f23f538cdc'}]]我希望它存儲在這樣的列表列表中:y=[['None','5b98d01c0835f23f538cdcab','5b98d0440835f23f538cdcad','5b98d0ce0835f23f538cdcb9'],['None','5b98d01c0835f23f538cd','5b98d0440835f23f538cd','5b98d0ce0835f23f538cdc']]為了從我嘗試過的字典中讀取 idfor d in json_obj:    print(d['id'])但是我在上面的代碼中看到了這個錯誤:TypeError: list indices must be integers or slices, not str
查看完整描述

2 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

您有一個嵌套的列表列表。有時有助于明顯地觀察這一點,注意嵌套[]語法:


json_obj = [[{'id': None}, {'id': 'abc'}, {'id': 'def'}, {'id': 'ghi'}],

            [{'id': None}, {'id': 'jkl'}, {'id': 'mno'}, {'id': 'pqr'}]]

您的語法適用于單個列表:


json_obj = [{'id': None}, {'id': 'abc'}, {'id': 'def'}, {'id': 'ghi'},

            {'id': None}, {'id': 'jkl'}, {'id': 'mno'}, {'id': 'pqr'}]


for d in json_obj:

    print(d['id'])

對于嵌套列表,您可以使用itertools.chain.from_iterable標準庫中的:


json_obj = [[{'id': None}, {'id': 'abc'}, {'id': 'def'}, {'id': 'ghi'}],

            [{'id': None}, {'id': 'jkl'}, {'id': 'mno'}, {'id': 'pqr'}]]


from itertools import chain


for d in chain.from_iterable(json_obj):

    print(d['id'])

或者,如果沒有導入,您可以使用嵌套for循環:


for L in json_obj:

    for d in L:

        print(d['id'])


查看完整回答
反對 回復 2021-09-11
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

使用嵌套列表理解。


json_obj = [[{'id': None},{'id': '5b98d01c0835f23f538cdcab'},{'id': '5b98d0440835f23f538cdcad'},{'id': '5b98d0ce0835f23f538cdcb9'}],[{'id': None},{'id': '5b98d01c0835f23f538cd'},{'id': '5b98d0440835f23f538cd'},{'id': '5b98d0ce0835f23f538cdc'}]]

print( [[j["id"] for j in i] for i in json_obj] )

或者


for i in json_obj:

    for j in i:

        print(j["id"])

輸出:


[[None, '5b98d01c0835f23f538cdcab', '5b98d0440835f23f538cdcad', '5b98d0ce0835f23f538cdcb9'], [None, '5b98d01c0835f23f538cd', '5b98d0440835f23f538cd', '5b98d0ce0835f23f538cdc']]



查看完整回答
反對 回復 2021-09-11
  • 2 回答
  • 0 關注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號