Как изменить XML-файл в одной строке. CSV? - PullRequest
1 голос
/ 13 июня 2019

Я хочу изменить этот формат с 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...