python - 这是在 python 中标记 csv 文件以转换为 json 文件的最佳方法

标签 python json csv nested

我想为那些不知道 .json 格式的人创建一个 .csv 模板。但是我不确定哪种是标记 json 中的嵌套属性和列表的最佳方法。例如这个:

[
  {
    name: "John",
    age: 46,
    address: [
       {
        street:"longroad",
        number: 12,
        type: "main adress"
       },
       {
        street:"summerroad",
        number: 25,
        type: "summer house"
       }
     ]
  }
]

我在想:

name,age,address/street-1,address/number-1,address/street-2,address/number-2 

name,age,address.street-1,address.number-1,address.street-2,address.number-2

那你觉得怎么样?我个人不喜欢它...我试图找到最简单的一种在 python 中转换(从 .csv 到 .json)。

最佳答案

解决方案是将 CSV 嵌入 CSV 中。这个想法是使用逗号作为文件的分隔符,然后使用分号分隔符作为具有多个值的字段:

 csv_data = csv.reader(csvfile, delimiter=',')

然后对于包含嵌入值的每一列:

 for line in csv_data:
      if ';' in line:
          csv_embed_data = csv.reader([line], delimiter=';')
      # continue parsing

那么您的 CSV 将如下所示:

name,age,street;number
John,46,longroad;12

对于具有相同 (name,age) 的值列表,您需要为每个不同的值重复这些行:

name,age,street;number;type
John,46,longroad;12;"main address"
John,46,summerroad;12;"summer house"

HTH

关于python - 这是在 python 中标记 csv 文件以转换为 json 文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35937276/

相关文章:

python - 将值插入到数据框列

json - 如何定义 JSON 兼容参数以避免错误 "Index signature is missing"?

json - 所有可能的 Kubernetes 事件及其类型

javascript - 为什么 JavaScript 中只显示数组的最后一个元素而不是所有元素

python - 收到 `KeyError: u' 没有名为 XYZ'` 的项目错误

c - 跳过 C 语言中以逗号分隔的单词的第一行

python - 在列表中值的不同列标题中打印值

python - 在 python 中使用大型字典? (性能和崩溃)

python - Python 中字典序最小的字符串是什么?

python - 如何在 pyqt 中嵌入 matplotlib - For Dummies