【问题标题】:how to correctly download a json file from github using python如何使用python从github正确下载json文件
【发布时间】: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

标签: python json python-3.x pandas beautifulsoup


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-23
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多