Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将JSON解析为数据帧_Python_Json_Pandas - Fatal编程技术网

Python 将JSON解析为数据帧

Python 将JSON解析为数据帧,python,json,pandas,Python,Json,Pandas,您知道如何从API规范化以下JSON输出吗 { "AA":{ "country":"US", "currency":"USD", "exchange":"NEW YORK STOCK EXCHANGE, INC.", "finnhubIndustry":"Metals &am

您知道如何从API规范化以下JSON输出吗

{
   "AA":{
      "country":"US",
      "currency":"USD",
      "exchange":"NEW YORK STOCK EXCHANGE, INC.",
      "finnhubIndustry":"Metals & Mining",
      "ipo":"2016-10-18",
      "logo":"",
      "marketCapitalization":4348.893,
      "name":"Alcoa Corp",
      "phone":"14123152900",
      "shareOutstanding":185.929586,
      "ticker":"AA",
      "weburl":"https://www.alcoa.com/global/en/home.asp"
   },
   "AAA":{
      
   },
使用pd.DataFrame.from_dict(json_normalize(df1),orient='columns') 我得到:


但是我需要一种格式,其中AA.XXX是一行,为AAA.XXX添加了新行,您不需要调用
pd.json\u normalize
;只需使用
pd.DataFrame.from_dict
并将
orient
参数指定为
index

注意,我刚刚将您的json复制到一个新节点中,因此值是相同的

j = {
   "AA":{
      "country":"US",
      "currency":"USD",
      "exchange":"NEW YORK STOCK EXCHANGE, INC.",
      "finnhubIndustry":"Metals & Mining",
      "ipo":"2016-10-18",
      "logo":"",
      "marketCapitalization":4348.893,
      "name":"Alcoa Corp",
      "phone":"14123152900",
      "shareOutstanding":185.929586,
      "ticker":"AA",
      "weburl":"https://www.alcoa.com/global/en/home.asp"
   },
   "AAA":{
      "country":"US",
      "currency":"USD",
      "exchange":"NEW YORK STOCK EXCHANGE, INC.",
      "finnhubIndustry":"Metals & Mining",
      "ipo":"2016-10-18",
      "logo":"",
      "marketCapitalization":4348.893,
      "name":"Alcoa Corp",
      "phone":"14123152900",
      "shareOutstanding":185.929586,
      "ticker":"AA",
      "weburl":"https://www.alcoa.com/global/en/home.asp"} }


您不需要调用
pd.json\u normalize
;只需使用
pd.DataFrame.from_dict
并将
orient
参数指定为
index

注意,我刚刚将您的json复制到一个新节点中,因此值是相同的

j = {
   "AA":{
      "country":"US",
      "currency":"USD",
      "exchange":"NEW YORK STOCK EXCHANGE, INC.",
      "finnhubIndustry":"Metals & Mining",
      "ipo":"2016-10-18",
      "logo":"",
      "marketCapitalization":4348.893,
      "name":"Alcoa Corp",
      "phone":"14123152900",
      "shareOutstanding":185.929586,
      "ticker":"AA",
      "weburl":"https://www.alcoa.com/global/en/home.asp"
   },
   "AAA":{
      "country":"US",
      "currency":"USD",
      "exchange":"NEW YORK STOCK EXCHANGE, INC.",
      "finnhubIndustry":"Metals & Mining",
      "ipo":"2016-10-18",
      "logo":"",
      "marketCapitalization":4348.893,
      "name":"Alcoa Corp",
      "phone":"14123152900",
      "shareOutstanding":185.929586,
      "ticker":"AA",
      "weburl":"https://www.alcoa.com/global/en/home.asp"} }


如果您想使用
json\u normalize
,您可以通过如下方式调用数据帧:

from pandas import json_normalize

json_normalize([d for d in j.values()])

如果您想使用
json\u normalize
,您可以通过如下方式调用数据帧:

from pandas import json_normalize

json_normalize([d for d in j.values()])

我更改了json中第二个节点的几个字段值,以确保它正在做它应该做的事情:)我更改了json中第二个节点的几个字段值,以确保它正在做它应该做的事情:)