TypeError:'int'对象在Python中不可迭代
问题描述:
def export_csv_standard_units(name):
cursor.execute("select distinct(standard_units) from activities where standard_type='IC50' ")
result_standard_units_distinct = cursor.fetchall()
cursor.execute("select standard_units from activities where standard_type='IC50' ")
result_standard_units = cursor.fetchall()
field_standard_units =()
cnt = []
for result in result_standard_units_distinct:
field_standard_units = field_standard_units + (result_standard_units_distinct,)
length = int(len(field_standard_units))
for i in result_standard_units:
for j in length:
if field_standard_units(j) == result_standard_units(9):
cnt[j] = cnt[j] + 1
field = (field_standard_units, cnt)
export_field = open('%s_standard_units.csv' %name, 'wb')
export_csv_field = csv.writer(export_field)
export_csv_field.writerows([field])
export_field.close()
我有一些问题需要运行我的python文件。 我想使csv.file数据统计 这样的..TypeError:'int'对象在Python中不可迭代
standard_units算 standard_unit1 123 standard_unit2 234
,但是,它的主要错误是这样的。
File "manage.py", line 42
for j in length:
TypeError: 'int' object is not iterable
这是什么意思iterable?
答
像你的错误消息说:int
s是不可迭代的。使用range
for j in range(length):
...
如果length
是10,range(length)
会给你值0..9。
你不必去实际计算提前长度 - 而不是你可以enumerate
的field_standard_units
:
for j, unit in enumerate(field_standard_units):
if unit == result_standard_units(9): # What's 9?
...
注: 使用xrange
如果你的范围是非常大的,因为range
创建一个列表,从而它的所有成员都占用了内存,而xrange
创建了一个像enumerate
一样的生成器。
像数组? – Daenarys 2015-02-11 08:58:28