Python - 通过读取 XML 产生 file.write 中的 "number:" 个单词来创建 XML

Python - creating XML by reading XML resulting "number:" word in file.write

我是 Python 的新手。我正在尝试使用以下代码生成 xml 文件:

file = open("filename.xml","w")
workbook = xlrd.open_workbook('data.xlsx')
worksheet = workbook.sheet_by_name('sheet1')
value = worksheet.cell(1, 2)
file.write("<raml xmlns="'"raml21.xsd"'" version="'"2.1"'">")
file.write("    <cmData scope="'"all"'" type="'"plan"'">")
file.write("        <managedObject class="'"BTS"'" distName="'"ID-%s"'" operation="'"create"'" version="'"1891"'">" % str(value))

但是输出是这样的:

<managedObject version="1891" operation="create" distName="ID-number:1900.0" class="BTS">

cell(1,2)的值应该是1900。 为什么文件中的输出是"number:1900.0"?我只期待它 1900。我该如何解决?

您正在使用方法 cell(rowx, colx),其中 returns 一个 Cell 对象。
这就是为什么 str(value) 在你的代码中 returns number:1900.0.

您要使用方法cell_value(rowx, colx),其中returns单元格的值。但是您仍然会得到一个浮点数。所以如果你希望值是整数,你可以这样转换它:

value = worksheet.cell_value(1, 2)
id = int(value)

或者,您可以使用 Cell 对象的属性 value
例如:

value = worksheet.cell(1, 2).value
id = int(value)