2012-05-24 35 views
0

我正在構建數據可視化,並且我想將CSV用作我的基本數據格式以實現輕鬆和易用性。我的源數據是沉重的XML,所以我使用Python和lxml將其轉換爲CSV。用XML表示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] 

這可能是最好的格式,只是取決於關於我如何查詢數據,但我想我會在這裏查看是否有一個行之有效的或更好的方法來做到這一點。

回答

0

考慮到您將要使用CSV,陣列版本會更好保留文檔的基於字段的結構。如果沒有數組命名,逗號會作爲字段分隔符和字段分隔符中的值重載,無法確定哪些字段正在播放,除非通過從記錄左側計算字段。

非數組版本還會將數據限制爲每個記錄類型的一個嵌套集合。這在當前的例子中不是問題,但可以是在應用程序中的另一種記錄類型。使用(單一)標準方法可提高清晰度和可維護性。

+0

謝謝,那也是我的想法。然後,我必須將字符串反序列化到客戶端的數組中,但考慮到其他優點,我認爲這沒關係。 – flossfan