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

从json转换为数据帧?

  •  2
  • Alper  · 技术社区  · 2 年前

    我正在尝试将JSON转换为数据帧。

    API的JSON输出如下:

    {
      "code": 0,
      "data": {
        "list": [
          {
            "address": "abcdxyz",
            "name": "Jack",
            "shares": "396",
            "amount": "490",
            "active": true
          },
          {
            "adress": "efghklm",
            "name": "Mary",
            "shares": "789",
            "amount": "890",
            "active": true
          }
        ],
        "page": 1,
        "size": 5,
        "maxPage": 1,
        "totalSize": 2
      }
    }
    
    

    尝试时

    response = requests.get(url)
    json_data = json.loads(response.text)
    df = pd.DataFrame(json_data['data'])
    

    它的输出是这样的

       list                   page  size  maxPage  totalSize
    0  {'address': 'abcd...    1     5        1          2
    1  {'address': 'efgh...    1     5        1          2
    

    我怎样才能达到这样的输出

          address    name  shares  amount active
    0     abcdxyz    Jack    396    490    true
    1     efghklm    Mary    789    890    true
    
    

    我试过几种方法,但无法从列表中正确打印。 提前感谢

    1 回复  |  直到 2 年前
        1
  •  1
  •   Diurnambule    2 年前

    您只需再深入一层,就可以访问具体的“列表”,而不是整个“数据”:

    response = requests.get(url)
    json_data = json.loads(response.text)
    df = pd.DataFrame(json_data['data']['list'])