如何更改一行中的xml文件.csv?

2024-09-27 09:29:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把这个格式从xml文件改成csv。我还想做一个循环,把所有的文件夹xml文件放在一个cvs文件中

<?xml version="1.0" encoding="UTF-8"?> 
 <Shot 
   Shotcode = "30AA"
   Id = "1" 
   ShotDate = "4/2/2000"> 
  <Images> 
   <Image 
    ImageNumber="103" 
    RawFileName="103_Shot.jpg" /> 
   <Image 
    ImageNumber="104"  
    RawFileName="104_Shot.jpg" /> 
   <Image 
    ImageNumber="105" 
    RawFileName="105_Shot.jpg" /> 
   </Images> 
   <Metrics> 
    <Metric 
     Name = "Hole" 
     TypeId = "163" 
     Value = "0" /> 
   <Metric 
     Name = "Area" 
     TypeId = "10" 
     Value = "63" /> 
 </Metrics> 
</Shot> 

我试着使用这个代码,但是这个创建cvs文件没有循环,所有的数据被打印在两列或更多列的方向上,但是我想在行的形式的一边

 root = tree.getroot()

 _30AA = open('30AA.csv', 'w+')
 csvwriter = csv.writer(_30AA)
 head = []

 ShotCode = root.attrib['Shotcode']
 csvwriter.writerow(['ShotCode', ShotCode])
 head.append(ShotCode)
 ShotDate = root.attrib['ShotDate']
 csvwriter.writerow(['ShotDate', ShotDate])

 for member in root.getchildren():

   submembers = member.getchildren()
   keys = submembers[0].attrib.keys()
  csvwriter.writerow(keys)
for submember in submembers:

    row_data = [submember.attrib[k] for k in keys]
    csvwriter.writerow(row_data )

_30AA.close()

我期待这种结果

 ShotCode   Id  ShotDate    ImageNumber  RawFileName    Name    Hole     Area
 3078       1   4/27/2010    103         103_Shot.jpg   TypeID  163       10
                             104         104_Shot.jpg   Value   0         63
                             105         105_Shot.jpg

Tags: 文件csvimagerootxmlkeysjpgshot

热门问题