处理一个在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}}]
答案 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']