首页 > 解决方案 > 通过将值存储为数组和 JSON 对象,将 CSV 文件中的行转换为多个 JSON 文件

问题描述

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

下面是 CSV 文件的外观。第一行是标题,第 2 行和第 3 行是与 country_1 相关的数据,而 country_2 只有第 4 行的数据 在此处输入图像描述

在此处复制了 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:我浏览了如何将 CSV 文件转换为多行 JSON 的答案?但在那里找不到解决方案

标签: pythonjsonpython-3.xpython-2.7csv

解决方案


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

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

推荐阅读