如何在Python中访问未标记的JSON数组元素?

时间:2017-01-11 14:48:22

标签: python json

处理一个在API调用上返回JSON的小项目。但是,我似乎无法从字符串中获取值。我可以打印JSON但似乎无法获得单个元素。

我已经尝试过json.loads()以确保我在JSON对象上运行。要访问与" faceId"相关联的值关键,我尝试了以下但无济于事:

data = response.read()
dataStream = json.dumps(data)
faceIdentification = dataStream[0]['faceId']

我也尝试过:

faceIdentification = dataStream['faceId']

faceIdentification = dataStream['faceId'][0]

我也试过直接操作收到的JSON,但没有运气。 我想从中获取faceId值的JSON是:

[{"faceId":"52f388ad-6789-4657-af4d-0dc308cc9aaa","faceRectangle":{"top":237,"left":204,"width":226,"height":226}}]

2 个答案:

答案 0 :(得分:1)

JSON是一种字符串格式。要将其转换为Python数据结构,您可以“加载”它:

data = response.read()
dataStream = json.loads(data)

现在dataStream是一个词典列表。第一个是dataStream[0],其中'faceId'元素是dataStream[0]['faceId']

答案 1 :(得分:0)

1)访问作为对GET请求的响应而获得的json数组。

[{"symbol":"EURUSD","bid":1.13859,"ask":1.13911,"price":1.13885,"timestamp":1541215930}]

    json_data = json.loads(response.text)
    bid = json_data[0]['bid']
    ask = json_data[0]['ask']
    price = json_data[0]['price']
    timestamp = json_data[0]['timestamp']

2)在不具有如下数组的情况下访问简单的json。

{"rates":{"EURUSD":{"rate":1.138789,"timestamp":1541224588014}},"code":200}

json_data = json.loads(response.text)
result = json_data['rates']['EURUSD']
rate = json_data['rates']['EURUSD']['rate']
timestamp = json_data['rates']['EURUSD']['timestamp']
code = json_data['code']