【发布时间】:2019-11-27 02:05:09
【问题描述】:
SyntaxError: 静态嵌套块过多
我正在尝试将 xml 文件解析为 csv 文件。
但是当for...in... 条件嵌套超过 20 次时,我得到了这个 SyntaxError。
如何减少行数以避免出现此 SyntaxError?
for time in root.findall('A'):
#print(time.text)
row=[]
row.append(time.text)
for time in root.findall('B'):
#print(time.text)
row.append(time.text)
for time in root.findall('C'):
row.append(time.text)
for time in root.findall('D'):
row.append(time.text)
for time in root.findall('E'):
row.append(time.text)
for time in root.findall('F'):
row.append(time.text)
for time in root.findall('G'):
row.append(time.text)
for time in root.findall('H'):
row.append(time.text)
for time in root.findall('I'):
row.append(time.text)
for time in root.findall('J'):
row.append(time.text)
for time in root.findall('K'):
row.append(time.text)
for time in root.findall('L'):
row.append(time.text)
for time in root.findall('M'):
row.append(time.text)
for time in root.findall('N'):
row.append(time.text)
for time in root.findall('O'):
row.append(time.text)
for time in root.findall('P'):
row.append(time.text)
for time in root.findall('Q'):
row.append(time.text)
for time in root.findall('R'):
row.append(time.text)
for time in root.findall('S'):
row.append(time.text)
for time in root.findall('T'):
row.append(time.text)
for time in root.findall('U'):
row.append(time.text)
csvwriter.writerow(row)
更新代码
head = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
row = []
for headstr in head:
for value in root.findall(headstr):
row.append(value.text)
【问题讨论】:
-
为什么这些嵌套开始?
-
您可以通过调用
__next__使用生成器,每次都产生(返回)下一个元素
标签: python python-3.x csv block