Python请求webd

2024-09-28 01:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有下面的代码,这是工作得很好

import requests

import json

f= open
r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/54c234f02ec4abe957b84f37?format=json')

data = r.json()

with open('data.json', 'w') as f:

json.dump(data, f)

但我想让厕所id成为url的一部分,上面是54c234f02ec4abe957b84f37?,动态。它必须从json列表中读取,我可以通过以下代码加载列表-

import json

with open('loos.json') as json_data:


d = json.load(json_data)

但是我不知道如何从loos数据集中读取id,将每个json结果附加到json转储中,因为它会遍历loos数据集

我觉得我很快就要完成这项任务了,但我只需要一两个提示

非常感谢。你知道吗

附加更新

`import json
import requests

with open('Tloos.json') as json_data:

data = json.load(json_data)

for i, loo in enumerate(data['features']):
    loo_id = loo['_id']
    r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/{}?format=json'.format(loo_id))

data = r.json()
with open('data%d.json' %i, 'w') as f:
    json.dump(data, f)`

所以,这是我的尝试,但它只保存输出的json文件中的最后一个loo id,我猜它会覆盖其他文件(我的测试)Tloos.json文件文件总共有3个LOO)或者没有正确迭代?如何调试这个?你知道吗


Tags: 文件代码httpsimportidjsonformatdata
1条回答
网友
1楼 · 发布于 2024-09-28 01:28:54

使用stringformat函数可以很容易地完成指定的操作。你知道吗

import requests
import json

with open('loos.json') as json_data:
    loo_id = json.load(json_data)['id']

r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/{}?format=json'.format(loo_id))

data = r.json()
with open('data.json', 'w') as f:
    json.dump(data, f)

这会告诉你怎么做的要点。我不知道你的名字loos.json文件结构是肯定的,因此您必须在需要获得loo_id时对其进行调整。其余的保持不变。你知道吗

如果您想迭代许多loo\u id,则必须使用循环执行以下操作:

for i, loo in enumerate(loo_structure['features']):
    loo_id = loo['_id']
    r=requests.get('https://greatbritishpublictoiletmap.rca.ac.uk/loos/{}?format=json'.format(loo_id))

    data = r.json()
    with open('data%d.json' %i, 'w') as f:
        json.dump(data, f)

其中loo_ids是包含您的id的某个iterable。你知道吗

相关问题 更多 >

    热门问题