私はcsvファイルにXMLを変換しようとしているが、私はこのエラーを取得していますPythonスクリプトを実行しているときでなければなりませんそれは)大きいですが、その常に同じ:XMLは整数
<?xml version='1.0' encoding='UTF-8'?>
<import>
<products>
<product>
<attribute>
<code>Something</code>
<value>xxx</value>
</attribute>
<attribute>
<code>Something2</code>
<value>xxx</value>
</attribute>
<attribute>
<code>Something3</code>
<value>xxx</value>
</attribute>
<attribute>
<code>Something4</code>
<value>xxx</value>
</attribute>
</product>
</products>
</import>
のpythonファイル:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import csv, xmltodict
from collections import OrderedDict
class Test:
def PSXML(self):
FilePS = open('test.csv', 'w')
csvwriter = csv.writer(FilePS)
header = ['Something1','Something2','Something3','Something4']
csvwriter.writerow(header)
with open('test.xml') as fd:
PSdata = []
obj = xmltodict.parse(fd.read())
obj = obj['import']['products']
root_elements = obj['product'] if type(obj) == OrderedDict else [obj['product']]
for element in root_elements:
Something1 = element['attribute'][1]['value']
PSdata.append(Something1)
Something2 = element['attribute'][2]['value']
PSdata.append(Something2)
Something3 = element['attribute'][3]['value']
PSdata.append(Something3)
Something4 = element['attribute'][4]['value']
PSdata.append(Something4)
csvwriter.writerow(PSdata)
FilePS.close()
TryIT = Test()
TryIT.PSXML()
は、このコードは、すでに別のXで働いていましたML構造(より論理的なもの)ですが、このタイプではそのTypeErrorでクラッシュします:文字列インデックスは整数エラーでなければなりません。
いずれかの理由がありますか?
このエラーはどの行で発生しますか? –
in Something1 =要素['attribute'] [1] ['value'] –
Something1 =要素['value']を試すことができますか? –