Python 将CSV转换为JSON
我有一个类似于下面的csv,希望转换为JSON 输入: 我期望得到的产出:Python 将CSV转换为JSON,python,json,pandas,csv,Python,Json,Pandas,Csv,我有一个类似于下面的csv,希望转换为JSON 输入: 我期望得到的产出: { "C1" :[ {"header2" : "name1", "header 3" : "address 1"}, {"header2" : "name3", "header 3" : "address 3"}], "C2&quo
{
"C1" :[ {"header2" : "name1", "header 3" : "address 1"}, {"header2" : "name3", "header 3" : "address 3"}],
"C2" : [ {"header2" : "name2", "header 3" : "address 2"}]
}
- 根据一些评论,有些人只是
憎恨者。但是我喜欢使用这个工具,它可以让我以尽可能简单的方式,用最少的代码行来解决问题。pandas
- 在这种情况下,毫无疑问,这就是熊猫
- 使用
的另一个好处是,如果需要,数据可以很容易地清理、分析和可视化pandas
- 位于的解决方案提供了一些基础,但无助于将csv转换为所需的形状
- 由于
文件的预期输出,这是一个非常重要的问题,它需要在csv中对数据进行重塑/分组,并且很容易使用。JSON
groupby
因为列值将是'h1'
外键dict
返回一个groupby
对象,该对象可分为DataFrameGroupBy
、用于创建组的值(i
和'c1'
)以及关联的数据帧组'c2'
。g
- 用于将数据帧转换为字典列表
导入json
作为pd进口熊猫
#读文件
df=pd.DataFrame('test.csv')
#显示(df)
H1H2H3
0 c1 n1 a1
1 c2 n2 a2
2 c1 n3 a3
#groupby和createdict
数据dict=dict()
对于df.groupby('h1')中的i,g:
数据dict[i]=g.drop(columns=['h1'])。到dict(orient='records')
#打印(数据记录)
{'c1':[{'h2':'n1','h3':'a1'},{'h2':'n3','h3':'a3'}],
'c2':[{'h2':'n2','h3':'a2'}]]
#将数据以JSON格式保存到文件中
将open('result.json','w')作为fp:
json.dump(数据目录,fp)
JSON文件
我是,我只是(错误地)认为直接使用csv
和json
模块同样简单,资源密集度也更低。然而,我没有考虑到为了给出OP所追求的结果而必须进行的数据挖掘。投票表决。
{
"c1": [{
"h2": "n1",
"h3": "a1"
}, {
"h2": "n3",
"h3": "a3"
}
],
"c2": [{
"h2": "n2",
"h3": "a2"
}
]
}