Создание файла xml для тестирования из модуля python - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть приложение, которое принимает файл xml в качестве входных данных и преобразует эти данные в указанную c структуру данных. Я хотел бы написать тест для этого приложения, но вместо использования внешнего файла xml я хотел бы определить данные xml внутри файла теста и затем передать эти данные в функцию, поэтому изначально моя идея заключалась в том, чтобы сделайте что-то вроде этого:

data = pd.DataFrame([#insert data here])
in_memory_xml = io.BytesIO()
xml_file = original.to_xml(in_memory_xml)
my_function(xml_file)

Однако у объектов pandas DataFrame нет функции "to_ xml", поэтому данные xml должны быть определены по-другому. Есть хороший способ решить эту проблему, не связанную с использованием внешнего xml файла?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Вы можете попробовать следующее:

data=pd.read_csv('temps.csv',delimiter=r"\s+")

def myfunction(row):
    myxml = ['<item>']
    for field in row.index:
        myxml.append('  <field name="{0}">{1}</field>'.format(field, row[field]))
    myxml.append('</item>')
    return '\n'.join(myxml)

final_xml='\n'.join(data.apply(myfunction, axis=1))
print(final_xml)
0 голосов
/ 25 февраля 2020

Это можно сделать, просто преобразовав строку в xml, используя l xml: https://kite.com/python/examples/5415/lxml-load-xml-from-a-string-into-an-%60elementtree%60

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