如何使用python从github正确下载json文件
Posted
技术标签:
【中文标题】如何使用python从github正确下载json文件【英文标题】:how to correctly download a json file from github using python 【发布时间】:2020-09-11 09:21:10 【问题描述】:我正在尝试下载某个 github 存储库中托管的 json 文件。这是link。
问题是,当我尝试使用 python 解码 json 时,出现以下错误:
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
这听起来像是不正确的 json 格式,所以当我在编辑器中手动打开文件时,我看到的是这样的:
这不是一个 json 文件,但这是应该的。相反,我得到了这个树形结构的文件。我需要使用pandas
将其加载到dataframe
中。有人可以在这里指出我正确的方向吗?我做错了什么?
这是我用来获取该文件的代码:
import urllib.request as r
from bs4 import BeautifulSoup as bs
import json
url = r.urlopen("https://raw.githubusercontent.com/aavail/ai-workflow-capstone/master/cs-train/invoices-2017-11.json")
content = url.read()
soup = bs(content)
newDictionary=json.loads(str(soup))
非常感谢您
【问题讨论】:
恭喜! 1000 代表。 谢谢@AnnZen! :D 【参考方案1】:相反,我得到了这个树形结构的文件。
不,我保证你会得到一个 JSON 文件;)。树形结构的表示是您的浏览器,使文件看起来很漂亮。如果你curl -XGET -L <url>
,你会看到一个 JSON 字符串。
Pandas 允许您直接从 URL 读取 JSON:
>>> import pandas as pd
>>> url = "https://raw.githubusercontent.com/aavail/ai-workflow-capstone/master/cs-train/invoices-2017-11.json"
>>> df = pd.read_json(url)
>>> df.head()
country customer_id invoice price stream_id times_viewed year month day
0 United Kingdom 13085.0 489434 6.95 85048 12 2017 11 28
1 United Kingdom NaN 489597 8.65 22130 1 2017 11 28
2 United Kingdom NaN 489597 1.70 22132 6 2017 11 28
3 United Kingdom NaN 489597 1.70 22133 4 2017 11 28
4 United Kingdom NaN 489597 0.87 22134 1 2017 11 28
【讨论】:
以上是关于如何使用python从github正确下载json文件的主要内容,如果未能解决你的问题,请参考以下文章
如何运行和安装从 GitHub 网站下载的 python 包? [复制]
如何从 AWS MWS API json 响应下载 .xlsx 文件?