Я пытаюсь прочитать данные CSV и сопоставить их со следующей XML-структурой.В моей первой попытке я использовал оператор% для форматирования строки, который работает.
import pandas as pd
import uuid
df = pd.read_csv('media.csv', sep=',')
def convert_row(row):
return """<video>
<videoType fileUID="%s" name="">
<locationType></locationType>
<type>%s</type>
<format>%s</format>
<year>%s</year>
</videoType>
</video>""" % (row[0], row[1], row[2], row[3])
print '\n'.join(df.apply(convert_row, axis=1))
Однако я надеюсь заполнить fileUID="%s"
сгенерированным uuid, который я могу затем использовать в другом месте.Я не могу заставить это работать.
Я пытался добавить u = str(uuid.uuid4())
непосредственно перед оператором возврата и обновить % (u, row[0], row[1], row[2], row[3])
Я получаю 'не все аргументы, преобразованные во время форматирования строки'error
Поэтому я попытался использовать форматирование f-строк
import pandas as pd
import uuid
df = pd.read_csv('media.csv', sep=',')
def convert_row(row):
return f"""<video>
<videoType fileUID="{u}" name="">
<locationType></locationType>
<type>{row[0]}</type>
<format>{row[1]}</format>
<year>{row[2]}</year>
</videoType>
</video>"""
print '\n'.join(df.apply(convert_row, axis=1))
и получил еще одну ошибку с указанием неверного синтаксиса в отношении закрывающего """
Я думаю,Вопрос в том, какой стиль форматирования строк является лучшим вариантом при работе с UUID, и что не так с моим кодом?Кроме того, если я захочу сослаться на сгенерированный uuid в других сгенерированных xml-структурах, я в конечном итоге создам xml-файл с содержимым нескольких сгенерированных xml-структур.
Спасибо за любую помощь