Python 获取dict密钥';s值作为列表(该值为dict)
我是Python新手,因此如果术语有误,我深表歉意。我认为通过代码本身来解释会更容易Python 获取dict密钥';s值作为列表(该值为dict),python,list,dictionary,Python,List,Dictionary,我是Python新手,因此如果术语有误,我深表歉意。我认为通过代码本身来解释会更容易 {'continue': {'rvcontinue': '20160625113031|17243371', 'continue': '||'}, 'query': {'pages': {'4270': {'pageid': 4270, 'ns': 0, 'title': 'Bulgaristan', 'revisions': [{'revid': 17077223, 'p
{'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()
转换为list并仅获取第一个元素
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'])
非常感谢你!这很有帮助,谢谢你理解我的问题,尽管我不清楚!!首先我不明白。我总是将
中的键和值用于
-loop,因此我认为.keys()
返回的列表可用于-loop的。但我检查了keys()
提供的内容,然后发现使用[0]
获取第一个元素可能会有问题。所以我创建了第一个示例。但在那之后,我发布了,即使对于一个元素,它也可以用标准的方式来完成,使用for
-loop,所以它不会list()
,我创建了第二个示例。