如何在Python中将json转换为pd.dataframe
我有一个json文件,需要转换成数据帧 json: 我一个接一个地尝试了以下代码,但它们都返回了:如何在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
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"})