我已经尝试了一些关于请求数据并将其转换为 pandas 数据帧的教程,但是当它转换为 pandas 数据帧时,它不显示任何数据。请参阅下文。
尝试 1
首先,检查 URL 是否有 200 状态:
import requests
query = "https://data.epa.gov/efservice/PUB_DIM_FACILITY/ROWS/0:10/JSON"
response = requests.get(query)
print(response.status_code)
>>> 200
其次,检查请求内容。到目前为止看起来不错,因为从 URL 中提取了 JSON 格式的多行数据。
s=requests.get(query).content
print(s)
>>> b'[{"FACILITY_ID":1000001,"LATITUDE":48.828707,"LONGITUDE":-122.685533,"CITY":"FERNDALE"
最后,将 s
请求 JSON 数据转换为 Pandas Dataframe。
但是,这不起作用。
dataframe=pd.read_csv(io.StringIO(s.decode('utf-8')), encoding='utf-8', error_bad_lines=False)
dataframe.head()
>>> 0 rows × 459 columns
尝试 2
import pandas as pd
import io
import requests
url = 'https://data.epa.gov/efservice/PUB_DIM_FACILITY/ROWS/0:10/JSON'
r = requests.get(url)
df = pd.read_csv(io.StringIO(r.t
ext))
>>> 0 rows × 459 columns
我在这里做错了什么?任何意见将不胜感激。谢谢。
最佳答案
试试这个
import pandas as pd
df = pd.read_json('https://data.epa.gov/efservice/PUB_DIM_FACILITY/ROWS/0:10/JSON')
FACILITY_ID LATITUDE LONGITUDE CITY STATE ZIP COUNTY_FIPS COUNTY ADDRESS1 ADDRESS2 ... REPORTED_INDUSTRY_TYPES FACILITY_TYPES SUBMISSION_ID UU_RD_EXEMPT REPORTING_STATUS PROCESS_STATIONARY_CML COMMENTS RR_MRV_PLAN_URL RR_MONITORING_PLAN RR_MONITORING_PLAN_FILENAME
0 1000001 48.828707 -122.685533 FERNDALE WA 98248 53073 WHATCOM COUNTY 5105 LAKE TERRELL ROAD NaN ... D Direct Emitter 176997 NaN NaN NaN NaN NaN NaN NaN
1 1000001 48.828707 -122.685533 FERNDALE WA 98248 53073 WHATCOM COUNTY 5105 LAKE TERRELL ROAD NaN ... C Direct Emitter 5752 NaN NaN NaN NaN NaN NaN NaN
关于python - 将 URL 请求从 JSON 转换为 Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70674248/