代码之家  ›  专栏  ›  技术社区  ›  Ivan

如何读取表示pandas数据帧的jsonweb响应

  •  0
  • Ivan  · 技术社区  · 3 年前

    我有一个 json 来自的响应 FastAPI REST service 它是这样生成的:

    dfjson = df.to_json(orient='records', date_format='iso', indent=4)
    

    看起来是这样的:

    [
        {
            "Date":"2017-12-01T00:00:00.000Z",
            "RR":0.0,
            "Symbol":"AAPL"
        },
        {
            "Date":"2018-03-12T00:00:00.000Z",
            "RR":-0.0655954215,
            "Symbol":"AAPL"
        },
        {
            "Date":"2018-03-14T00:00:00.000Z",
            "RR":-0.0493162968,
            "Symbol":"AAPL"
        },
        {
            "Date":"2018-03-15T00:00:00.000Z",
            "RR":-0.0539632781,
            "Symbol":"AAPL"
        },
        ...
    

    关于 client 侧面,我正在尝试转换 json语言 变成 pandas dataframe 因此:

    df = pd.read_json(response.text)
    print(df)
    

    但我得到了一个错误:

    ....
    raise ValueError("If using all scalar values, you must pass an index")
    ValueError: If using all scalar values, you must pass an index
    

    我不确定我做错了什么?

    0 回复  |  直到 3 年前
        1
  •  1
  •   Laurent B.    3 年前

    我怀疑这是由于json的严格格式。事实就是这样。

    请看我的问题 there

    pd.read_json(str(response).replace("'", '"'), orient='records')
    
                           Date        RR Symbol
    0 2017-12-01 00:00:00+00:00  0.000000   AAPL
    1 2018-03-12 00:00:00+00:00 -0.065595   AAPL
    2 2018-03-14 00:00:00+00:00 -0.049316   AAPL
    3 2018-03-15 00:00:00+00:00 -0.053963   AAPL