访问列表中的对象元素

Accessing object elements in list

我得到服务器的响应:

r = requests.get(my_url)
print(r.text)
json_response = json.loads(r.text)
print(type(json_response))

我正在使用 json.loads() 将字符串转换为 json。但是,响应具有以下格式:

[{"element_info":{"data":201863539001,......]

我想访问 element_info.data。我尝试使用 json_response.element_info.data 访问它,但我得到了 AttributeError: 'list' object has no attribute 'bkdn_elem_info'.

我也试过content = r.read(),我得到了AttributeError: 'Response' object has no attribute 'read'

您无法使用“.”访问 python 中的字典元素javascript 中的运算符。您必须使用如下方括号表示法来访问元素

json_response[0]["element_info"]["data"]

json_response的类型是list。因此,您可以对其进行迭代并访问其中的每个元素。每个元素都是一个字典。所以,你可以使用键:

for each_element in json_response:
    print(each_element["element_info"]["data"])

如果您不确定这些键是否在所有元素中都可用,可以使用带有默认值的get()方法,以避免键不存在时出错。这里,第一个操作数是你要读取的键,第二个操作数可以用来定义一个默认值:

for each_element in json_response:
    print(each_element.get("element_info", {}).get("data", ""))

从列表中获取数据,必须先指定索引元素,然后获取对象的属性

objectOfList =json_response[0];

value  = objectOfList["element_info"]["data"];