Python google docs api索引排序错误必须为整数

Python google docs api索引排序错误必须为整数,python,google-docs-api,Python,Google Docs Api,这是一个很长的问题,我可能会错过一些东西,所以如果需要更多的信息,请询问 我一直在用scaperwiki从谷歌学者那里搜集数据,直到最近,我才把所有的URL都像这样放进去 elec_urls = """http://1.hidemyass.com/ip-5/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPWo0YnRpeXNBQUFBSiZobD1lbg%3D%3D&f=norefer htt

这是一个很长的问题,我可能会错过一些东西,所以如果需要更多的信息,请询问

我一直在用scaperwiki从谷歌学者那里搜集数据,直到最近,我才把所有的URL都像这样放进去

elec_urls = """http://1.hidemyass.com/ip-5/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPWo0YnRpeXNBQUFBSiZobD1lbg%3D%3D&f=norefer
http://4.hidemyass.com/ip-1/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPVZXaFJiZEFBQUFBSiZobD1lbg%3D%3D&f=norefer
http://4.hidemyass.com/ip-2/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPV84X09JSWNBQUFBSiZobD1lbg%3D%3D&f=norefer
http://1.hidemyass.com/ip-4/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPUh3WHdmTGtBQUFBSiZobD1lbg%3D%3D&f=norefer
http://4.hidemyass.com/ip-1/encoded/Oi8vc2Nob2xhci5nb29nbGUuY29tL2NpdGF0aW9ucz91c2VyPXU1NWFWZEFBQUFBSiZobD1lbg%3D%3D&f=norefer
""".strip()

elec_urls = elec_urls.splitlines()
然后我将每一页都刮去,把我想要的信息放在一个目录列表中,排序一次,删除重复项,然后使用不同的键再次排序,然后将我想要的信息导出到google docs电子表格中。这100%有效

我试着改变它,这样我可以有另一个谷歌文档电子表格,从这里我可以把所有的网址,它会做同样的事情。下面是我到目前为止所做的

def InputUrls(Entered_doc, EnteredURL):
    username = 'myemail'
    password = 'mypassword'
    doc_name = Entered_doc
    spreadsheet_id = Entered_doc
    worksheet_id = 'od6'

    # Connect to Google
    gd_client = gdata.spreadsheet.service.SpreadsheetsService()
    gd_client.email = username 
    gd_client.password = password  
    gd_client.source = EnteredURL
    gd_client.ProgrammaticLogin()

    #Now that we're connected, we query the spreadsheet by name, and extract the unique spreadsheet and worksheet IDs.

    rows = gd_client.GetListFeed(spreadsheet_id, worksheet_id).entry
    #At this point, you have a row iterator which will yield rows for the spreadsheet. This example will print everything out, keyed by column names:
    urlslist = []
    for row in rows:
        for key in row.custom:
            urlslist.append(row.custom[key].text)
        return urlslist

def URLStoScrape(ToScrape):
    Dep = []
    for i in range(0,len(ToScrape)):
        Department_urls = ToScrape[i].strip()
        Department_urls = Department_urls.splitlines() 
        Done = MainScraper(Department_urls)
        Dep.append(Done)
    
return Dep

ElectricalDoc = '0AkGb10ekJtfQdG9EOHN0VzRDdVhWaG1kNVEtdVpyRlE'
ElectricalUrl = 'https://docs.google.com/spreadsheet/ccc?    '
ToScrape_Elec = InputUrls(ElectricalDoc, ElectricalUrl)
这似乎很好,但当程序进行排序时,我得到以下错误

回溯(最近一次呼叫最后一次): 文件“/code/scraper”,第230行,在 总计和印地语电气=GetToCalcitations(电气) 文件“/code/scraper”,第89行,在GetToCalcitations中 Wrt_引文URL=排序(部门,“引文URL”) 文件“/code/scraper”,第15行,排序 SortedData=sorted(未排序,反向=True,键=lambda k:k[pivot]) 文件“/code/scraper”,第15行,在 SortedData=sorted(未排序,反向=True,键=lambda k:k[pivot]) TypeError:列表索引必须是整数,而不是str

我认为,几乎可以肯定,它与URLStoScrape函数有关,但我不知道如何修复它,任何帮助都会很好


谢谢,如果需要更多信息请告诉我

我想问题出在第89行

GetTotalCitations Wrt_CitationURL = Sorting(Department, "CitationURL")
“引文URL”应该是整数索引,或者是传递给
sorted()
中的
key
函数应该是一个字典。

看起来pivot变量是一个字符串而不是一个整数。你能发布排序()的代码吗?这是排序函数的代码。def Sorting(Unsorted,pivot):SortedData=sorted(Unsorted,reverse=True,key=lambdak:k[pivot])返回SortedDataMaybe,但当我以另一种方式执行时,这似乎没有什么区别,知道为什么吗?这可能有助于我打印URLStoScrape的输出,我得到的东西看起来像这样[[这是空的] [{}{}{}{}{}{}{}]]. {}中包含的所有内容都包含数据。但是当我在列出所有URL的情况下打印等价的URL时,我得到了类似于[{}{}{}{}{}}{}}的东西。可能是额外列表和空列表导致了问题吗?也许排序函数没有考虑空结果?可能就是这样。为什么它返回一个空的结果我不知道