WEB开发网
开发学院软件开发Python 使用 Python 和 pureXML 操作 CSV 数据 阅读

使用 Python 和 pureXML 操作 CSV 数据

 2010-02-25 00:00:00 来源:WEB开发网   
核心提示: 将 CSV 数据转换成 XML 文档要将 CSV 转换成 XML,您首先必须明白应该如何储存数据,使用 Python 和 pureXML 操作 CSV 数据(9),是否分开储存不同的记录,并检查是否存在应该删除的无用记录,在您的文本编辑器中,创建一个新的文件并以 convert.py 为名保存它

将 CSV 数据转换成 XML 文档

要将 CSV 转换成 XML,您首先必须明白应该如何储存数据,是否分开储存不同的记录,并检查是否存在应该删除的无用记录。在您刚才下载的样例 CSV 文件中,您将注意到它包含 3 种类型的数据:1 行针对整个国家的数据;4 行针对地区 Northeast、Midwest、South 和 West 的数据、51 行针对美国 50 个州和哥伦比亚特区的数据,还有 1 行针对 Puerto Rico Commonwealth 的数据。该文件的第一行是一个标题行,用作列名。

您在本小节中创建的脚本将选择标题行,并使用该数据构成 XML 文档中的记录应该具有的每个元素的标记名。该脚本将根据前 4 列决定特定的行引用 country、region 还是 state,并相应地设置标记名以表明引用哪个 XML 文档。最后,该脚本将选择排除 Puerto Rico Commonwealth 记录,因为它包含不完整的数据。

在您的文本编辑器中,创建一个新的文件并以 convert.py 为名保存它。将 清单 4 中的代码添加到该文件中。

清单 4. convert.py

import csv 
 
reader = csv.reader(open('data.csv'), delimiter=',', quoting=csv.QUOTE_NONE) 
 
print "<data>" 
for record in reader: 
  if reader.line_num == 1: 
    header = record 
  else: 
    innerXml = "" 
    dontShow = False 
    type = "" 
    for i, field in enumerate(record): 
      innerXml += "<%s>" % header[i].lower() + field + "</%s>" 
% header[i].lower() 
      if i == 1 and field == "0": 
        type = "country" 
      elif type == "" and i == 3 and field == "0": 
        type = "region" 
      elif type == "" and i == 3 and field != "0": 
        type = "state" 
 
      if i == 1 and field == "X": 
        dontShow = True 
 
    if dontShow == False: 
      xml = "<%s>" % type 
      xml += innerXml 
      xml += "</%s>" % type 
      print xml 
print "</data>" 

上一页  4 5 6 7 8 9 10  下一页

Tags:使用 Python pureXML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接