如何遍历JSON对象

时间:2019-01-13 09:15:34

标签: python json python-2.7 python-requests

我正在从API获得以下响应,我想从Python中的该对象提取电话号码。我该怎么办?

Image

2 个答案:

答案 0 :(得分:1)

将API响应存储到变量中。我们称之为response

现在使用json模块将JSON字符串转换为Python字典。

import json

response_dict = json.loads(response)

现在遍历response_dict以获得所需的文本。

phone_number = response_dict["ParsedResults"][0]["TextOverlay"]["Lines"][0]["Words"][0]["WordText"]

无论字典值是一个数组,[0]都用于访问数组的第一个元素。如果要访问数组的所有元素,则必须遍历数组。

答案 1 :(得分:1)

您必须使用库json将产生的搅动解析为字典,然后您可以通过遍历json结构这样遍历结果:

import json

raw_output = '{"ParsedResults": [ { "Tex...' # your api response
json_output = json.loads(raw_output)

# iterate over all lists
phone_numbers = []

for parsed_result in json_output["ParsedResults"]:
    for line in parsed_result["TextOverlay"]["Lines"]:
        # now add all phone numbers in "Words"
        phone_numbers.extend([word["WordText"] for word in line["Words"]])

print(phone_numbers)

您可能要检查该过程中是否存在所有密钥,具体取决于您使用的API,例如

# ...
for line in parsed_result["TextOverlay"]["Lines"]:
    if "Words" in line: # make sure key exists
        phone_numbers.extend([word["WordText"] for word in line["Words"]])
# ...