Python:嵌套循环不起作用

时间:2015-07-09 02:34:07

标签: python loops

我从另一个脚本中获取了以下代码并根据我的需要进行了修改。我要做的是在Google趋势中针对不同的地理位置和不同的时间段进行相同的查询。

import csv

read_list=open("GTrends Georreference.csv")

geo_list=csv.reader(read_list, delimiter=',')

import csv

read_list2=open("Dates.csv")

date_list=csv.reader(read_list2, delimiter=',')

#connect to Google
connector = pyGTrends(google_username, google_password)

for i in geo_list:

    geo=str(i)
    geo=geo[2:-2]

    for j in date_list:
        dat=str(j)
        dat=dat[2:-2]
        mon=dat.split('/')[-2]
        yr=dat[5:7]

#make request
        connector.request_report(query,"","",geo,dat)

#wait a random amount of time between requests to avoid bot detection
        #time.sleep(randint(1,3))

#download file
        connector.save_csv(path, query +"_"+ geo +"_"+ mon+"-"+yr)

但是,当我运行它时,它只运行地理参考列表的第一个元素和所有句点,但随后它会停止。我做错了什么?

非常感谢你。

编辑:CVS如下所示:

Georreference one:

US
US-AK
US-AL
US-AR
US-AK
US-CA
US-CO
US-CT
US-FL
US-GA
US-HI
US-IA
US-ID
US-IL
US-IN
US-KS
US-KY
US-LA
US-MA

日期:

01/2004 3m
04/2004 3m
07/2004 3m
10/2004 3m
01/2005 3m
04/2005 3m
07/2005 3m
10/2005 3m
01/2006 3m
04/2006 3m
07/2006 3m
10/2006 3m
01/2007 3m
04/2007 3m
07/2007 3m
10/2007 3m
01/2008 3m
04/2008 3m
07/2008 3m

我不得不说,如果没有嵌套循环(即,使用geo_list的所有值来表示一个特定日期),它就可以正常工作。这只是两个循环的组合似乎不起作用。

1 个答案:

答案 0 :(得分:0)

我不知道它为什么会起作用,但我通过改变python导入.CSVs的方式克服了这个问题:

import csv

with open ("GTrends Georreference.csv", "r") as f:
        reader=csv.reader(f)
        geo_list=list(reader)

import csv

with open ("Dates.csv") as f:
        reader=csv.reader(f)
        date_list=list(reader)

有了它,就像魅力一样。