Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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转换为pd.dataframe_Json_Python 3.x_Pandas - Fatal编程技术网

如何在Python中将json转换为pd.dataframe

如何在Python中将json转换为pd.dataframe,json,python-3.x,pandas,Json,Python 3.x,Pandas,我有一个json文件,需要转换成数据帧 json: 我一个接一个地尝试了以下代码,但它们都返回了:ValueError:数组的长度必须相同 (一) 2) 也尝试过像有人在类似问题中建议的那样使用“” test_df = pd.DataFrame( {"@odata.context": "http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceCont

我有一个json文件,需要转换成数据帧

json:

我一个接一个地尝试了以下代码,但它们都返回了:
ValueError:数组的长度必须相同

(一)

2) 也尝试过像有人在类似问题中建议的那样使用“”

test_df = pd.DataFrame(
                    {"@odata.context": "http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule", 
                     "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], 
                     "times": ["00:30"], 
                     "enabled": False, 
                     "localTimeZoneId": "UTC", 
                     "notifyOption": "MailOnFailure"})
(三)

这完全取决于文件:
  • 第一个问题是从文件中获取数据,这取决于文件的格式
  • 所使用的样本数据是问题顶部五行重复的单引号数据
如果文件是一堆
指令
,则每一条指令都在换行符上:
{'@odata.context':'http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule、'days':['Sunday'、'周一'、'周二'、'周三'、'周四'、'周五'、'周六']、'times':['00:30']、'enabled':False、'localTimeZoneId':'UTC'、'notifyOption':'MailOnFailure}
{...}
{...}
{...}
{...}
创建数据帧的代码:
  • 如果不需要,可以删除
    encoding=“utf8”
  • 用于将半结构化JSON数据规范化为平面表。
    • 这意味着它将展平嵌套列表
将熊猫作为pd导入
从pandas.io.json导入json_规范化
从ast导入文字值
行\列表=列表()
将open(“test.json”,encoding=“utf8”)作为f:
对于f中的行:
行=文字值(行)
行\列表。追加(行)
df=json_规范化(行列表,['days'],['@odata.context','enabled','localTimeZoneId','notifyOption','times'],)
如果文件是dicts的
列表
[{…},
{...},
{...},
{...},
{...}]
创建数据帧的代码:
将open(“test.json”,encoding=“utf8”)作为f:
数据=文字值(f.read())
df=json_规范化(数据,['days'],['@odata.context','enabled','localTimeZoneId','notifyOption','times']))
数据帧输出:
0@odata.context启用的localTimeZoneId notifyOption时间
星期天http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期一http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期二http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期三http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期四http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期五http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期六http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期天http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期一http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期二http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期三http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期四http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期五http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
星期六http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule False UTC MailOnFailure 00:30
test_df = pd.DataFrame(
                    {'@odata.context': 'http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule', 
                     'days': ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], 
                     'times': ['00:30'], 
                     'enabled': False, 
                     'localTimeZoneId': 'UTC', 
                     'notifyOption': 'MailOnFailure'})
test_df = pd.DataFrame(
                    {"@odata.context": "http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule", 
                     "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], 
                     "times": ["00:30"], 
                     "enabled": False, 
                     "localTimeZoneId": "UTC", 
                     "notifyOption": "MailOnFailure"})
test_df = pd.DataFrame(
                    {"@odata.context": "http://analysis.windows.net/v1.0/myorg/groups//$metadata#Microsoft.PowerBI.ServiceContracts.Api.V1.RefreshSchedule", 
                     "days": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], 
                     "times": ["00:30"], 
                     "enabled": "False", 
                     "localTimeZoneId": "UTC", 
                     "notifyOption": "MailOnFailure"})