簡體   English   中英

獲取字典鍵的值作為列表(值是字典)

[英]Getting a dict key's value as a list (the value is a dict)

我對 Python 相當陌生,所以如果術語有誤,我深表歉意。 我認為通過代碼本身解釋會更容易。

{'continue': {'rvcontinue': '20160625113031|17243371', 'continue': '||'},
 'query': {'pages': {'4270': {'pageid': 4270,
    'ns': 0,
    'title': 'Bulgaristan',
    'revisions': [{'revid': 17077223,
      'parentid': 16909061,
      'user': '85.103.140.217',
      'anon': '',
      'userid': 0,
      'timestamp': '2016-05-11T15:30:31Z',
      'comment': 'BULGARİSTAN',
      'tags': ['visualeditor']},
     {'revid': 17077230,
      'parentid': 17077223,
      'user': 'GurayKant',
      'userid': 406350,
      'timestamp': '2016-05-11T15:31:31Z',
      'comment': '[[Özel:Katkılar/Muratero|Muratero]] ([[Kullanıcı_mesaj:Muratero|mesaj]]) tarafından yapılmış 16907788 numaralı değişiklikler geri getirildi. ([[VP:TW|TW]])',
      'tags': []},
     {'revid': 17079353,
      'parentid': 17077230,
      'user': '85.105.16.34',
      'anon': '',
      'userid': 0,
      'timestamp': '2016-05-12T11:03:43Z',
      'comment': 'Dipnotta 2001 sayımı verilmesine rağmen burada 2011 yazılmış.',
      'tags': ['visualeditor']},
     {'revid': 17085285,
      'parentid': 17079353,
      'user': 'İazak',
      'userid': 200435,
      'timestamp': '2016-05-14T09:36:18Z',
      'comment': 'Gerekçe: Etnik dağılım kaynağı 2001, nüfus sayımı 2011 tarihli.',
      'tags': []},
     {'revid': 17109975,
      'parentid': 17085285,
      'user': 'Kudelski',
      'userid': 167898,
      'timestamp': '2016-05-21T13:14:44Z',
      'comment': 'Düzeltme.',
      'tags': []}]}}}}

從這段代碼中,我想獲得'pageid''title''revid''user''userid''timestamp''comment''tags'
我可以使用y['query']['pages']但是我不想繼續使用'4270'因為每次運行 API 時這個數字都會改變。

我希望它足夠解釋! 非常感謝! 如有必要,我可以提供其他信息!!

您可以使用list().keys().values()轉換為列表並僅獲取第一個元素。

data = {...your dictionary...}

item = list(data['query']['pages'].values())[0]

print('title:', item['title'])
print('pageid:', item['pageid'])

for x in item['revisions']:
    print('---')
    print('revid:', x['revid'])
    print('user:', x['user'])
    print('userid:', x['userid'])
    print('timestamp:', x['timestamp'])
    print('comment:', x['comment'])
    print('tags:', x['tags'])

但是如果你在這個目錄中有很多頁面,那么你應該使用for -loop

for key, item in data['query']['pages'].items():

    print('key:', key)
    print('title:', item['title'])
    print('pageid:', item['pageid'])

    for x in item['revisions']:
        print('---')
        print('revid:', x['revid'])
        print('user:', x['user'])
        print('userid:', x['userid'])
        print('timestamp:', x['timestamp'])
        print('comment:', x['comment'])
        print('tags:', x['tags'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM