如何在Python中使用API​​中的数据来访问另一个JSON文件中的数据?

时间:2019-07-09 16:14:12

标签: python json api

我对使用Python遇到的问题有些不满。我有一个在线API(JSON),其中包含人员列表,所有人员都有单独的ID号。

我想将这些ID号带有单独的数据(关于房屋状况)带到另一个JSON文件中,并一起打印出房屋的详细信息和名称。

为了给您一个想法,这是一个带有人物的JSON文件示例(example_1.json):

{"value":[{
      "name": "Alan Smith",
       "id" : "ibcd23"},
       {"name": "Paul Flack",
       "id" : "aasd201"}]

,这里是第二个具有住房状态的json文件(example_2.json)的示例:

{"value":[{
  "id": "ibcd23",
  "housing": "apartment"},
  {"id": "aasd201",
  "housing": "villa"}]}

您将如何处理?我只是来确定ID值:

import json

with open("example_1.json") as input_file:
    data = json.load(input_file)

for i in data["value"]:
    x = i["Id"]

在此先感谢您的帮助

B.t.w。我没有提供实际的JSON文件/ API链接,因为它很大,并且包含的​​数据远远超过“名称”和“ id”,所以我认为这可能会使问题变得更加复杂。

编辑: 因此,感谢TomNash,这是解决方案:

for person in people["value"]:
    for status in housing_status["value"]:
        if status['id'] == person['id']:
            print(status['housing']+ " " + person['name'])

1 个答案:

答案 0 :(得分:0)

JSON的设置不是最好的,但这应该可以工作:

example_1 = json.dumps({"value":[{
      "name": "Alan Smith",
       "id" : "ibcd23"},
       {"name": "Paul Flack",
       "id" : "aasd201"}]})
example_2 = json.dumps({"value":[{
  "id": "ibcd23",
  "housing": "apartment"},
  {"id": "aasd201",
  "housing": "villa"}]})

people = json.loads(example_1)
housing_status = json.loads(example_2)

{person['name']:status['housing']
 for person in people["value"]
 for status in housing_status["value"]
 if status['id'] == person['id']}