【问题标题】:API reading error: ValueError: Mixing dicts with non-Series may lead to ambiguous orderingAPI 读取错误:ValueError:将 dicts 与非系列混合可能会导致排序不明确
【发布时间】:2021-08-20 03:46:18
【问题描述】:

我尝试从 API 导入一些数据,但我不断收到此错误。

ValueError:将 dicts 与非系列混合可能会导致排序不明确。

代码如下:

import pandas as pd
data = pd.read_json('https://api.cartolafc.globo.com/atletas/mercado')

我看到有人说要使用类似的东西:

import json
import pandas as pd
data = json.load(open('json_file.json'))

df = pd.DataFrame(data["result"])

但由于数据来自 api,我不知道如何读取它。

【问题讨论】:

    标签: python pandas dataframe api data-manipulation


    【解决方案1】:

    这是一个使用requests的方法

    response = requests.get('https://api.cartolafc.globo.com/atletas/mercado')
    data = json.loads(response.text)
    

    然后用.keys()看看json的顶层是什么

    data.keys()
    # dict_keys(['clubes', 'posicoes', 'status', 'atletas'])
    

    根据您的需要,您可以执行此操作并进一步操作您的数据。

    pd.DataFrame(data['clubes'])
    pd.DataFrame(data['posicoes'])
    pd.DataFrame(data['status'])
    pd.DataFrame(data['atletas'])
    

    如果你还没有那么高级,上面是可以的。当您开始对 json 结构更加熟悉时,您也可以查看 json_normalize

    【讨论】:

    • 谢谢。喜欢的话请采纳答案
    猜你喜欢
    • 2021-01-05
    • 2018-09-05
    • 2021-02-19
    • 2019-11-22
    • 2021-12-25
    • 2019-07-11
    • 2020-04-24
    • 2011-01-12
    • 1970-01-01
    相关资源
    最近更新 更多