python - 加载多个 JSON 文件
问题描述
所以我试图用 Python HTTP 请求加载多个 JSON 文件,但我不知道如何正确地做到这一点。
使用 python 加载一个 JSON 文件非常简单:
response = requests.get(url)
te = response.content.decode()
da = json.loads(te[te.find("{"):te.rfind("}")+1]
但是如何加载多个 JSON 文件?
我有一个 URL 列表,我尝试使用循环请求每个 URL,然后加载结果的每一行,但这似乎不起作用。
这是我正在使用的代码:
t = []
for url in urls:
re = requests.get(url)
te = req.content.decode()
daten = json.loads(te[te.find("{"):te.rfind("}")+1])
t.append(daten)
但我收到此错误:JSONDecodeError: Expecting value: line 1 column 1 (char 0)。
我对 JSOn 很陌生,但我知道我不能用循环逐行读取它,因为它破坏了 JSON 结构(?)。
那么如何读取多个 JSON 文件呢?
编辑:发现错误。
某些链接的 JSON 格式不正确。
解决方案
使用 requests 库,如果您请求的端点返回格式良好的 json 响应,您需要做的就是调用.json()
响应对象上的方法:
t = []
for url in urls:
re = requests.get(url)
t.append(re.json())
然后,如果您想处理不良响应,请将上面的代码包装在一个try:...except
块中
推荐阅读
- centos - 我搞砸了我的 bash 配置,但我不确定如何
- r - 在 R 中自定义 LSTM 的初始化器
- bash - 用于检查服务器是否已启动的 Shell 脚本
- c# - System.Net.Http 不适用于 .Net 4.5 应用程序。已添加参考
- javascript - Webpack 不会缩小子文件夹中的 js 文件
- windows - 仅过滤掉 PS 输出中的特定值
- mysql - 我们可以在数据库级别使用 MySql 触发器吗
- php - 当特定产品类别的商品在 Woocommerce 的购物车中时禁用购物
- python - swig 转换标题中的枚举
- amazon-web-services - SPARK 写入 s3 文件夹导致 AWS EMR 中的大量连接处于 CLOSE_WAIT 状态,端口号:4040