первый тег xml неправильно отформатирован - PullRequest
0 голосов
/ 04 марта 2020

У меня есть следующий код, который принимает CSV и записывает файл xml:

import csv
import sys
import os
from lxml import etree

def main():
    csvFile = 'pol_renew_detail.csv'
    xmlFile = open('pol_renew_detail.xml','wb')
    csvData = csv.reader(open(csvFile))
    header = next(csvData)
    counter = 0
    root = etree.Element('root')

    for row in csvData:
        policy = etree.SubElement(root,'policy')
        for index in range(0,len(header)):
            child = etree.SubElement(policy,header[index])
            child.text = row[index]
            policy.append(child)

    result = etree.tostring(root,pretty_print=True,encoding='utf-8')
    #print(result)
    xmlFile.write(result)
    print('Done')

if __name__ == '__main__':
    main()

Файл CSV имеет 3 столбца следующим образом:

enter image description here

Выходной файл xml создается следующим образом:

<root>
  <policy>
    <PolicyNumber>78014R01</PolicyNumber>
    <EffectiveDate>20190919</EffectiveDate>
    <AttributeFlag>Account</AttributeFlag>
  </policy>
  <policy>
    <PolicyNumber>44900A03</PolicyNumber>
    <EffectiveDate>20190801</EffectiveDate>
    <AttributeFlag>Account</AttributeFlag>
  </policy>
  <policy>
    <PolicyNumber>81566A01</PolicyNumber>
    <EffectiveDate>20190228</EffectiveDate>
    <AttributeFlag>Account</AttributeFlag>
  </policy>
  <policy>
.
.
.
</root>

Когда я открываю этот файл xml в Notepad ++, я замечаю, что форматирование первого тега ' PolicyNumber 'отличается от других тегов. Когда я пытаюсь использовать этот xml для других процессов, я получаю ошибку форматирования файла. Что я делаю неправильно только для первого тега в этом xml файле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...