如何使用python中的索引从json列表中获取值



如何在此处打印"abcd"?


import json
my_dict = {
"test": "hello world",
'my_list': [{
'a_value': "abcd",
'another_value': 'asdf'
}]
}
stuff = json.dumps(my_dict)
stuff = json.loads(stuff)
e = stuff[my_list][1] # An attempt
print(e) # IndexError: list index out of range

我想特别使用索引(1,而不是"a_value"(。

您的尝试有两个问题:

  1. my_list是json对象中的一个键,它的工作原理类似于dict。因此,您必须将其作为对象中的键引用,并将其括在"中
  2. "my_list"具有列表的值,因此应访问列表的第一个元素,然后才能访问关键字"a_value">

在dictionary或json对象中,不能通过索引引用键。因此,不能使用"1"来引用"a_value"。您的另一个选择可能是创建对象值的列表,然后使用索引。可以这样做:

import json
my_dict = {
"test": "hello world",
'my_list': [{
'a_value': "abcd",
'another_value': 'asdf'
}]
}
stuff = json.dumps(my_dict)
stuff = json.loads(stuff)
e = list(list(stuff.values())[1][0].values())[0]
print(e)

上述语句的输出为:

abcd

或者,正如@Dr。奇怪的代码,你可以做这样的事情,尽管我猜这不是你想要的:

e = stuff['my_list'][0]['a_value']

输出为:

abcd

试试这个:-

import json
my_dict = {
"test": "hello world",
'my_list': [{
'a_value': "abcd",
'another_value': 'asdf'
}]
}
stuff = json.dumps(my_dict)
stuff = json.loads(stuff)
e = my_dict['my_list'][0]['a_value']
print(e) 

它会起作用的!

最新更新