这是我正在处理的数据的示例。
{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/1v2mrzYSYG6onNLt2qTj13hkQZk"',
'items': [{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/Xy1mB4_yLrHy_BmKmPBggty2mZQ"',
'id': '1',
'kind': 'youtube#videoCategory',
'snippet': {'assignable': True,
'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',
'title': 'Film & Animation'}},
{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/UZ1oLIIz2dxIhO45ZTFR3a3NyTA"',
'id': '2',
'kind': 'youtube#videoCategory',
'snippet': {'assignable': True,
'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',
'title': 'Autos & Vehicles'}},
{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/nqRIq97-xe5XRZTxbknKFVe5Lmg"',
'id': '10',
'kind': 'youtube#videoCategory',
'snippet': {'assignable': True,
'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',
'title': 'Music'}},
'kind': 'youtube#videoCategoryListResponse'}
我想提取2列数据
也就是说,从第一项开始,我会有'id' = 1, 'title' = Film & Animation
我是Python的新手,用Python做到这一点的最佳方法是什么?
非常感谢大家!
答案 0 :(得分:0)
我认为是
for it in data['items']:
print(it['id'], it['snippet']['title'])
答案 1 :(得分:0)
'items'是可以通过for循环遍历对象的列表:
false
答案 2 :(得分:0)
猜猜有一个错字'items'
是一个list
,每当我们将方括号([
)开始时,都需要将其关闭(]
)。
{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/1v2mrzYSYG6onNLt2qTj13hkQZk"',
'items': [{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/Xy1mB4_yLrHy_BmKmPBggty2mZQ"',
'id': '1',
'kind': 'youtube#videoCategory',
'snippet': {'assignable': True,
'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',
'title': 'Film & Animation'}},
{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/UZ1oLIIz2dxIhO45ZTFR3a3NyTA"',
'id': '2',
'kind': 'youtube#videoCategory',
'snippet': {'assignable': True,
'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',
'title': 'Autos & Vehicles'}},
{'etag': '"ld9biNPKjAjgjV7EZ4EKeEGrhao/nqRIq97-xe5XRZTxbknKFVe5Lmg"',
'id': '10',
'kind': 'youtube#videoCategory',
'snippet': {'assignable': True,
'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',
'title': 'Music'}}, # <----- HERE, no brackets
'kind': 'youtube#videoCategoryListResponse'}
# all items
[row for row in data['items']]
# custom data from all items
[(row['id'], row['snippet']['title']) for row in data['items']]
# just id > 0 (filtering data)
[row for row in data['items'] if row['id']>0]
结合使用两种过滤数据提取特殊字段:
[(r['id'], r['snippet']['title']) for r in data['items'] if r['id'] > 0]
filter
一个机会这真的很酷
f = lambda r: (r['id'], r['snippet']['title'])
result = filter(f, data['items'])