我对使用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'])
答案 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']}