python - 将 JSON 页面列表转换为一个对象

标签 python json

我想创建使用 api 生成一些数据/统计数据的程序。

Api有32个页面,所以我必须迭代,将页面添加到列表中,在获取所有页面后,我想将列表中的元素转换为一个大对象并对其进行操作。

因此,要从 API 获取数据并将其存储在我的列表中:

response = []

for i in range(1,32):
    url = "https://api.dane.gov.pl/resources/17201/data?page="+str(i)
    response.append(requests.get(url).json)

我尝试使用 json.loads()、json.dumps() 但没有任何效果。有什么解决方案可以解决这个问题吗?

编辑: 当我收集我的回复并使用时:

valid = json.dumps(response)
print(valid)

我收到错误: “method”类型的对象不可 JSON 序列化

最佳答案

尝试:

import json

def collect_responses(num_of_pages):
    response = []

    for i in range(1, num_of_pages):
        url = "https://api.dane.gov.pl/resources/17201/data?page="+str(i)
        response.append(requests.get(url).json())
    return response

valid = json.dumps({"responseList": collect_responses(32)}

或者以更一般的方式:

def paginate_while_200(url_template_missing_pagenum):
    list_of_json_response = []
    i = 1
    while True:
        response = requests.get(url % i)
        if response.status == 200:
            try:
                list_of_json_response.append(response.json())
                i += 1
            finally:
                return list_of_json_response
        else:
            return list_of_json_response

url = "https://api.dane.gov.pl/resources/17201/data?page=%d"
json.dumps({"responseList": paginate_while_200(url)})

关于python - 将 JSON 页面列表转换为一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56207437/

相关文章:

macOS Big Sur 更新后 python3.5 错误 'dyld library not loaded: CoreFoundation'

python - 使用Python创建MongoDb数据库

c# - JsonPropertyAttribute 在派生类中的私有(private)属性上被忽略

json - 如何配置任务以在 VSC IDE(版本 2.0.0)中启动 .ps1 脚本?

json - 如何验证字符串是 PostgreSQL 中的有效 JSON?

python - 如何仅从 Bigquery 客户端中的 insert_rows_from_dataframe 方法获取错误?

python - 如何在 Python 中创建 CFuncType

python - 如何在 Python 中使用 for 循环查找数组中的重复元素?

c# JSON 序列化使用值而不是属性名称

javascript - 在 JSON 数组中创建键名不断变化的键值对