【发布时间】:2018-01-25 22:43:11
【问题描述】:
ab= [['name Belgian Waffles', 'price $5.95', 'description Two of our famous Belgian Waffles ', 'calories 650'] ]
我想使用 python 将此列表解析为表格格式的 CSV 文件
Ex. :
name price description Calories
Belgian Waffles $5.95 Two of our famous Belgian Waffles 650
注意:列表大小可能会有所不同。这些值可能会有所不同。不应该有硬编码。
有问题的xml是
<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>Two of our famous Belgian Waffles with plenty of real maple
syrup</description>
<calories>650</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<description>Light Belgian waffles covered with an assortment of fresh
berries and whipped cream</description>
<calories>900</calories>
</food>
我尝试使用以下 python 脚本首先将其提取到列表中,并以 food 为根
def innerHtml(root):
text = ''
nodes = [ root ]
while not nodes==[]:
node = nodes.pop()
if node.nodeType==xml.dom.Node.TEXT_NODE:
text += node.wholeText
else:
nodes.extend(node.childNodes)
return text
innerlist=[]
outerlist=[]
string2=[]
# To get tag value
for statusNode in xmlFile.getElementsByTagName(xmlNode):
for childNode in statusNode.childNodes:
if childNode.nodeType==xml.dom.Node.ELEMENT_NODE:
if innerHtml(childNode).strip() != '':
string2.append(childNode.nodeName)
innerlist.append(childNode.nodeName+"
"+innerHtml(childNode).strip())
outerlist.append(innerlist)
innerlist=[]
print (outerlist)
我得到以下列表
outerlist = [['name Belgian Waffles', 'price $5.95', 'description Two of our famous Belgian Waffles ', 'calories 650'] , ['name Berry-Berry Belgian Waffles','price $8.95','description Light Belgian waffles covered with an assortment ','calories 900']]
我希望使用 python 格式将其写入 CSV
name price description calories
<name given> <price> <description> <calories>
【问题讨论】:
-
让我们看看你的尝试。