Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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 将CSV转换为JSON_Python_Json_Pandas_Csv - Fatal编程技术网

Python 将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

我有一个类似于下面的csv,希望转换为JSON

输入:

我期望得到的产出:

{
"C1" :[ {"header2" : "name1", "header 3" : "address 1"}, {"header2" : "name3", "header 3" : "address 3"}],
"C2" : [ {"header2" : "name2", "header 3" : "address 2"}]
}
  • 根据一些评论,有些人只是
    pandas
    憎恨者。但是我喜欢使用这个工具,它可以让我以尽可能简单的方式,用最少的代码行来解决问题。
    • 在这种情况下,毫无疑问,这就是熊猫
    • 使用
      pandas
      的另一个好处是,如果需要,数据可以很容易地清理、分析和可视化
    • 位于的解决方案提供了一些基础,但无助于将csv转换为所需的形状
  • 由于
    JSON
    文件的预期输出,这是一个非常重要的问题,它需要在csv中对数据进行重塑/分组,并且很容易使用。
    • 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"
        }
    ]
}