0

我正在构建一个数据可视化,我想使用 CSV 作为我的基本数据格式,以实现轻巧和易用。我的源数据采用大量 XML 格式,因此我使用 Python 和 lxml 将其转换为 CSV。

我的问题是这个。当我在 XML 中有多个子标签<City>时,如下所示:

<Country>
   <Name>France</Name>
   <Cities>
   <City><Name>Paris</Name></City>
   <City><Name>Lyon</Name></City>
   </Cities>
</Country>
<Country>
   <Name>Germany</Name>
   <Cities>
   <City><Name>Berlin</Name></City>
   <City><Name>Munich</Name></City>
   <City><Name>Aachen</Name></City>
   </Cities>
</Country>

我应该如何在我的 CSV 文件中表示它们?我可以想到两个选择。首先是为每个城市添加一列,直到 CityN:

 Country,City1,City2,City3
 France,Paris,Lyon,,
 Germany,Berlin,Munich,Aachen

第二种是对所有城市使用一个数组:

 Country,Cities
 France,[Paris,Lyon]
 Germany,[Berlin,Munich,Aachen]

最好的格式可能只是取决于我想如何查询数据,但我想我会在这里检查一下是否有一个完善的或更好的方法来做到这一点。

4

1 回答 1

0

鉴于您将使用 CSV,数组版本更好地保留了文档的基于字段的结构。如果没有数组命名法,逗号既作为字段分隔符又作为字段分隔符内的值被重载,除了从记录左侧计算字段外,无法确定哪个在起作用。

非数组版本还将您的数据限制为每个记录类型一个嵌套集合。这在当前示例中不是问题,但可能是您的应用程序中的另一种记录类型。使用(单一)标准方法可以提高清晰度和可维护性。

于 2012-05-25T01:00:29.443 回答