如何在此处打印"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"(。
您的尝试有两个问题:
- my_list是json对象中的一个键,它的工作原理类似于dict。因此,您必须将其作为对象中的键引用,并将其括在"中
- "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)
它会起作用的!