У меня есть XML-файл, который нужно разобрать. Я сделал это с помощью мини-парсера python. Мне пришлось добавить атрибут к определенному элементу, который я сделал после разбора. Теперь я хочу записать файл обратно. Я не могу этого сделать.numpy.int64 'объект не имеет атрибута' replace 'во время записи xml-файла с помощью minidom
Ниже приведена ошибка, которую я получаю для этого. Я установил сегодня версию numpy 1.8 (win 32 python 2.7). Тем не менее, я никогда не пробовал писать xml-файл раньше. Не могли бы вы помочь?
Вот фрагмент кода:
xmlfile=open(xmlFile,'r')
xmldoc = minidom.parse(xmlFile)
tElements = xmldoc.getElementsByTagName("TEA")
for t in tElements:
if(t.childNodes):
print t.nodeType
dataList = t.childNodes[0].data
for data, csvData in product(dataList, clusterDataList):
if(data == csvData[1]):
t.setAttribute("cluster",csvData[0])
xmlfile.close()
fileWriter=open("sujatha_new.xml",'w')
xmldoc.writexml(fileWriter)
fileWriter.close()
Вот исключение:
неTraceback (most recent call last):
File "C:\Users\w44ylqrl\workspace\Python\Test\T\XMLConverter.py", line 215, in <module>
addClusterInfo('..\\T\\preprocessed_For_Clustering\\outputs\\sujatha-new.csv', '..\\T\\xml\\sujatha.xml')
File "C:\Users\w44ylqrl\workspace\Python\Test\T\XMLConverter.py", line 48, in addClusterInfo
xmldoc.writexml(fileWriter)
File "C:\Python27\Lib\xml\dom\minidom.py", line 1752, in writexml
node.writexml(writer, indent, addindent, newl)
File "C:\Python27\Lib\xml\dom\minidom.py", line 817, in writexml
node.writexml(writer, indent+addindent, addindent, newl)
File "C:\Python27\Lib\xml\dom\minidom.py", line 817, in writexml
node.writexml(writer, indent+addindent, addindent, newl)
File "C:\Python27\Lib\xml\dom\minidom.py", line 817, in writexml
node.writexml(writer, indent+addindent, addindent, newl)
File "C:\Python27\Lib\xml\dom\minidom.py", line 817, in writexml
node.writexml(writer, indent+addindent, addindent, newl)
File "C:\Python27\Lib\xml\dom\minidom.py", line 817, in writexml
node.writexml(writer, indent+addindent, addindent, newl)
File "C:\Python27\Lib\xml\dom\minidom.py", line 807, in writexml
_write_data(writer, attrs[a_name].value)
File "C:\Python27\Lib\xml\dom\minidom.py", line 296, in _write_data
data = data.replace("&", "&").replace("<", "<"). \
AttributeError: 'numpy.int64' object has no attribute 'replace'
Пожалуйста, предоставьте код, предупреждающий об ошибке. – alko
Здравствуйте, alko, добавьте код, который вызывает это. Не могли бы вы взглянуть? – user1930402
попробуйте добавить строку, преобразуя ваши данные в строки, прежде чем добавить их в DOM. – catchmeifyoutry