json - 将 API 响应转换为数据框
问题描述
我一直在尝试从 API 获取数据并将其转换为 Pandas DataFrame。
但是,从 API 读取数据后,我无法将响应转换为 JSON。
import pandas as pd
import numpy as np
import requests
import json
r = requests.get('https://api.rootnet.in/covid19-in/')
x = r.json()
print(type(x))
df = pd.DataFrame(x['teams'])
df
错误:
JSONDecodeError Traceback (most recent call last)
<ipython-input-13-e2dd33599256> in <module>()
5
6 r = requests.get('https://api.rootnet.in/covid19-in/')
----> 7 x = r.json()
8 print(type(x))
9 df = pd.DataFrame(x['teams'])
~/anaconda3/lib/python3.7/site-packages/requests/models.py in json(self, **kwargs)
894 # used.
895 pass
--> 896 return complexjson.loads(self.text, **kwargs)
897
898 @property
~/anaconda3/lib/python3.7/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
346 parse_int is None and parse_float is None and
347 parse_constant is None and object_pairs_hook is None and not kw):
--> 348 return _default_decoder.decode(s)
349 if cls is None:
350 cls = JSONDecoder
~/anaconda3/lib/python3.7/json/decoder.py in decode(self, s, _w)
338 end = _w(s, end).end()
339 if end != len(s):
--> 340 raise JSONDecodeError("Extra data", s, end)
341 return obj
342
JSONDecodeError: Extra data: line 1 column 5 (char 4)
API 详细信息:https ://www.programmableweb.com/api/covid-19-india-rest-api-v10
解决方案
推荐阅读
- mongodb - 访问 Config 集合的 MongoDB 权限错误
- javascript - 正则表达式 RegEx - 多行/连接/修剪
- python - Python/Pandas:检查数据帧中的值是否固定
- javascript - 切换到 Webpacker 后,内联脚本中不存在 JQuery
- php - 社交登录没有让我登录,但登录表单有效
- dart - 具有安全连接的 grpc dart 服务器和客户端示例
- mysql - 无法通过socket '/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)为什么?
- javascript - 即使文本存在,JS数组也不返回特定文本的索引值
- powerbi - Power Bi Dax 测量根据来自数据源的数据将数据发送到不同的表格视觉对象
- java - 如何在 Java EE 中按计划运行方法?