Python for循环一次又一次地只使用第一个查询值

Python for循环一次又一次地只使用第一个查询值,python,Python,我有一个查询输出,将带来400万条实时记录。我试图做的是运行一个查询,它将带来一些记录,我试图在for循环中逐个传递这些记录,并执行一个特定的操作 但是发生的只是来自查询的第一条记录在for循环中反复出现 query = "select id from owner limit 10" print (query) cursor.execute(query) contact = cursor.fetchall() print(contact) for info in cont

我有一个查询输出,将带来400万条实时记录。我试图做的是运行一个查询,它将带来一些记录,我试图在for循环中逐个传递这些记录,并执行一个特定的操作

但是发生的只是来自查询的第一条记录在for循环中反复出现

 query = "select  id from owner limit 10"
print (query)
cursor.execute(query)
contact = cursor.fetchall()
print(contact)
for info in contact:
    id = contact[0][0]
    print(id)
for row in info:
    print (id)
    ivurl = f'{api}/company/{row}/contacts?'
    payload: Dict[str, Union[bool, int]] = {'owner': True}
    response = get_iv_response(url=ivurl, payload=payload)
    email_contact_totalresult: int = response.get('totalResults')
    email = int(email_contact_totalresult)
    if email > 0:
        print("this contact has email")
这是输出

this is the result from the query
[(167806,), (167806,), (50791734,), (7615365,), (641219,), (6990522,),(4943654,), (4943654,)]
这是for循环的结果
167806 167806 167806 167806 167806 167806 167806 167806 167806 167806 167806
此联系人有电子邮件

我认为您正在尝试执行以下操作:

contact = [(167806,), (167806,), (50791734,), (7615365,), (641219,), (6990522,),(4943654,), (4943654,)]
print(contact)
for id in contact:
    print(id[0])
    ivurl = f'{api}/company/{id[0]}/contacts?'
    payload: Dict[str, Union[bool, int]] = {'owner': True}
    response = get_iv_response(url=ivurl, payload=payload)
    email_contact_totalresult: int = response.get('totalResults')
    email = int(email_contact_totalresult)
    if email > 0:
        print("this contact has email")
我相信发生故障的线路是
id=contact[0][0]
当您将联系人的第一个值指定给id时。
但是,如果您想获取id的第一个值,在本例中是一个元组,您可以执行类似于
id[0]

的操作,但您并不真正理解您的代码。但是对于第二个for循环,它不应该在第一个for循环中吗。现在“info”变量只包含一个值。那么如何在for循环中逐个传递查询值呢!您知道循环嵌套了什么吗?确实需要行“id=contact[0][0]”吗?你在那里做的是将contact(167806,)的第一个值分配给id。如果你删除它,它应该可以工作,我认为我不能使用嵌套for循环,因为它是一个查询输出,请纠正我,如果我确实错了,但除了第一个值在for内不断重复之外loop@dr.engg请用新代码再试一次好吗?正如在我的测试中一样,当我在代码中将值作为常量时,它不会重复,但当使用查询时,它仍然会导致相同的问题。我看到,您可以将行
cursor.fetchall()
修改为
列表(cursor.fetchall())
,然后重试代码或对输出进行注释吗?另外,将
'ivurl=f'{api}/company/{id[0]}/contacts?
修改为
ivurl=f'{api}/company/{id}/contacts?
感谢它的工作,有一个缩进问题导致了这个问题