Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未知键中的字典值_Python_Json_Dictionary - Fatal编程技术网

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'])