在这个json数组中:
json_string=[{"Id": "report","Value": "3001"},{"Id": "user","Value": "user123"}]
如果我传入用户
,如何取回 user123当我尝试这样做时:
content = json.loads(json_string)
content['user']
我收到一条错误,指出你必须使用整数来引用一个元素。
我是Python的新手。
谢谢!
答案 0 :(得分:3)
content
是一个列表,因此您应首先按索引获取元素:
>>> content[1]['Value']
'user123'
>>> for d in content:
... if 'user' in d.values():
... print d['Value']
'user123'
假设user
始终映射到Id
:
>>> for d in content:
... if d['Id'] == 'user':
... print d['Value']
一个班轮:
>>> [d['Value'] for d in content if d['Id'] == 'user'][0]
'user123'
答案 1 :(得分:0)
假设您想要关注列表中第一次出现的具有特定值的字段(例如&#39; Id&#39;)(例如&#39; user&#39;):< / p>
def look_for(string, field, val):
return next((el['Value'] for el in string if el[field] == val))
json_string = [{"Id": "report","Value": "3001"}, {"Id": "user","Value": "user123"}]
found_val = look_for(json_string, 'Id', 'user')
产生
'user123'
显然,输出字段也可以成为参数而不是硬编码到Value