多级csv文件创建的建议

ssgvzors  于 2023-02-14  发布在  其他
关注(0)|答案(2)|浏览(120)

我有一些最终用户想要的CSV文件数据。每个条目都有一个父节点和零个或多个子节点。例如,父节点可能包含:

Name, Id, Date

而子节点可能包含:

Name, ChildId

所以我在寻找一个用CSV表示多级数据的标准。在XML中,我可以很容易地创建子节点。在CSV中,最好的方法是什么?我想创建一个脚本来提取这些数据,而不会混淆什么是父数据,什么是子数据。
在XML中可能类似于:

<Parent Name="name1">
<Child Name="ChildName1"></Child>
<Child Name="ChildName2"></Child>
</Parent>

<Parent Name="name2">
<Child Name="ChildName1"></Child>
<Child Name="ChildName2"></Child>
</Parent>
rvpgvaaj

rvpgvaaj1#

XML可以最小化为:

<names>
 <name1>
  <childName1/>
  <childName2/>
 </name1>

 <name2>
  <childName1/>
  <childName2/>
 </name2>
</names>

CSV格式如下:

name1  ChildName1
name1  ChildName2
name2  ChildName1
name2  ChildName2

使用JSON序列化如下:

{"names":
 [
  {
  "name1":
   [
    {
    "childName1":""
    },
    {
    "childName2":""
    }
   ]
  },
  {
  "name2":
   [
    {
    "childName1":""
    },
    {
    "childName2":""
    }
   ]
  }
 ]
}

在面向行的方式中,XML可以是:

<names>
 <name1 name="ChildName1|ChildName2">
 <name2 name="ChildName1|ChildName2">
</names>

以及相应的CSV:

name1  ChildName1|ChildName2
name2  ChildName1|ChildName2

以及对应的JSON:

{"names": [{"name1":"ChildName1|ChildName2"},{"name2":"ChildName1|ChildName2"}]}

参考资料

kcwpcxri

kcwpcxri2#

请检查多级CSV https://github.com/siara-cc/csv_ml
它允许使用CSV进行分层多级别数据表示,并且还具有Java和JavaScript解析为JSON和XML DOM的参考实现。
免责声明:我是此方法和库的作者

相关问题