在CSV中表示列表/数组值的标准方法是什么?例如,给定JSON中的源数据:
[
{
'name': 'Harry',
'subjects': ['math', 'english', 'history']
}
]
我对CSV表示的猜测是:
name,subjects
Harry,["math","english","history"]
但是它不能被正确解析(使用标准的Python CSV解析器)。
一个选项是选择一个您知道永远不会在数据中出现的分隔符,尽管这几乎总是一种技巧,除非确实必要,否则应该避免使用。例如:
name,subject
Harry,math|english|history
当然,您必须手动处理分割字符串并将其转换回列表。现有的CSV解析器不应该支持这个,因为这个概念在CSV中根本没有意义。
当然,这不能很好地泛化——将来当你需要存储2D列表或字典时,或者你意识到确实需要分隔符时,会发生什么?这里的根本问题是CSV是表格格式,而JSON是分层格式。而不是试图"挤压"。为了适应根本不兼容的格式,您应该将数据规范化为表格表示。下面是一个示例:
name,subject
Harry,math
Harry,english
Harry,history