Python 未知键中的字典值
我试图从字典中提取一些值,我使用Python 未知键中的字典值,python,json,dictionary,Python,Json,Dictionary,我试图从字典中提取一些值,我使用json.loads() 我遇到的问题是,其中一个密钥是未知的,因为它是一个ID号。实际上,我可以硬编码ID,因为它不太可能改变,但这感觉不对。一定有更好的办法 { 'status': { 'timestamp': '2020-10-27T08:11:22.182Z', 'error_code': 0, 'error_message': None, 'elapsed': 11, 'credit_count': 1,
json.loads()
我遇到的问题是,其中一个密钥是未知的,因为它是一个ID号。实际上,我可以硬编码ID,因为它不太可能改变,但这感觉不对。一定有更好的办法
{
'status': {
'timestamp': '2020-10-27T08:11:22.182Z',
'error_code': 0,
'error_message': None,
'elapsed': 11,
'credit_count': 1,
'notice': None
},
'data': {
'1': {
'id': 1,
在id:1下,一路向下。。。我还想提取另外两个键/值。。但问题是,1
可以是任何东西!这只是我从中提取JSON的API分配的一个It编号
如果我在price
变量中硬编码它:
price=data['data']['1']['quote']['price']
…当然,我得到了我想要的正确值。。但我想做的是:
price=data['data']['?']['quote']['price']
其中?
是“忽略下一个键的名称,继续”
为清楚起见,ID键是数据下方的唯一键。。。所有的东西都在ID中。那么有没有一种方法可以移动到下一个键而不用担心它叫什么
由于它是一本字典,我曾考虑过使用data.items()
,但这感觉像是一种非常混乱的获取数据的方法。我将使用for循环:
for x in j['data']:
print(j['data'][x]['quote']['price'])
break
price=next(iter(data['data'].values())['quote']['price']
似乎相当简单。您对该键不感兴趣,因此直接转到value=)@schwobasegll您必须首先将values()
转换为列表,因为dict\u view
不可订阅。在这一点上,我更喜欢使用.pop
,甚至只使用loop@DeepSpace你是对的。只是换了。我通常更喜欢next(iter(…)
你可以使用.values
那么就不需要重复j['data']
:对于j['data']中的v.values():打印(v['quote']['price'])