我正在尝试读取 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])
我收到“字符串格式化期间并非所有参数都转换”错误
所以我尝试使用 f-strings 格式
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 时哪种字符串格式样式是最佳选择以及我的代码有什么问题?另外,如果我希望在其他生成的 xml 结构中引用生成的 uuid - 我最终将创建一个包含多个生成的 xml 结构内容的 xml 文件。
感谢您的任何帮助