从python中的json数组访问数据

时间:2019-09-05 05:40:52

标签: python json

我的回应之一,

{
    "password": [
        "Ensure that this field has atleast 5 and atmost 50 characters"
    ]
}

我正在尝试获取密码中的字符串。如何获取它。

下面是我正在尝试的代码

key = json.loads(response['password'])
print(key[0]),

但是它说“字符串索引必须是整数,而不是str”

2 个答案:

答案 0 :(得分:5)

错误消息是正确的。

key = json.loads(response['password'])
print(key[0]),

json的格式为字符串。您需要先将json对象的字符串转换为python dict,然后才能访问它。

即:loads(string)之前的info[key]

key = json.loads(response)['password']
print(key[0])

答案 1 :(得分:1)

通常json是一个字符串,您将尝试将其反序列化为对象图(在python中通常由映射和数组组成)。

因此,假设您的响应实际上是一个字符串(例如,从HTTP请求/端点检索到的字符串),则可以使用json.loads反序列化它(该函数基本上是从字符串加载的),然后得到一个带有“密码”键,它是一个数组,因此请从中获取第一个元素。

import json

resp = '{ "password": [ "Ensure that this field has atleast 5 and atmost 50 characters" ] }'
print json.loads(resp)['password'][0]