通过将值存储为数组和JSON对象,将CSV文件中的行转换为多个JSON文件

时间:2019-03-06 12:12:48

标签: python json python-3.x python-2.7 csv

我有一个运行多达1000行数据的大型CSV文件,我想为CSV文件中的每个数据块创建一个JSON文件。

下面是CSV文件的外观。第一行是标题,第二行和第三行是与country_1有关的数据,而对于country_2,第四行中只有数据 enter image description here

在此处复制了CSV的内容

countryname MultiValues_name    MulitValues_Value   dateRange_name  dataRange_start date_range_end
country_1   Variables   AAA selectdate  2019-01-01T00:00:00Z    2019-02-02T00:00:00Z
        BBB         
country_2   Variables       selectdate  1996-01-01T00:00:00Z    1996-02-02T00:00:00Z

我想将CSV中的每个数据块作为JSON对象存储在单独的文件中 我期望country_1的JSON对象在单独的文件中看起来像下面这样,比如说file1.json

{
  "countryname": "country_1",
  "MultiValues": [{"name": "variables", "value": ["AAA","BBB"]}],
  "dateRange": [{"name": "selectdate","start": "2019-01-01T00:00:00Z","end": "2019-02-02T00:00:00Z"}]
}

与country_2类似,存储为file2.json

{
  "countryname": "country_2",
  "dateRange": [{"name": "selectdate","start": "1996-01-01T00:00:00Z","end": "1996-02-02T00:00:00Z"}]
}

我可以从CSV读取数据并向Json写入简单的名称/值对。在这种情况下,值存储为数组或值存储为json对象,而json对象内部包含一个数组。这似乎很棘手。如果可以帮助以更简单的方式创建json,我有权编辑CSV文件的结构

PS:我经历了How to convert CSV file to multiline JSON?的回答,但在那里找不到解决方法

1 个答案:

答案 0 :(得分:0)

如果您要使用熊猫,可以这样做:

import pandas as pd 
df = pd.read_csv(<filename>)
df.to_json(<outfilename>)