2013-08-20 8 views
0

Это довольно длинный вопрос, и я могу что-то пропустить, поэтому, если вам нужна дополнительная информация, спросите.Ошибка сортировки с помощью google-docs-api

Iv искал данные ученого-исследователя Google, используя 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() 

Я тогда черешок каждая страница и поместить информацию, которую я хочу в списке dicts, разбирайтесь один раз, удалить дубликаты, а затем отсортировать его еще раз, используя другой ключ, я затем экспортировать информацию, которую я хочу, чтобы в Google docs. Это работает 100%.

Я попытался изменить его, чтобы у меня была другая электронная таблица документов Google, и отсюда я могу поместить все URL-адреса, и он будет делать то же самое. Ниже приводится то, что я сделал до сих пор.

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) 

Это похоже на мелкие мелкие царапины, но затем, когда программа идет сортировать, я получаю следующую ошибку.

Traceback (самый последний вызов последнего): Файл "./code/scraper", строка 230, в Total_and_Hindex_Electrical = GetTotalCitations (электрический) Файл "./code/scraper", строка 89, в GetTotalCitations Wrt_CitationURL = Сортировка (Департамент, «CitationURL») Файл «./code/scraper», строка 15, в разделе «Сортировка» SortedData = sorted (Unsorted, reverse = True, key = lambda k: k [pivot]) Файл «./ код/​​скребок ", строка 15, в SortedData = sorted (Unsorted, reverse = True, key = lambda k: k [pivot]) TypeError: индексы списка должны быть целыми, а не str

Я думаю, почти уверен, что он имеет какое-то отношение к функции URLStoScrape, но я не знаю, как это исправить, любая помощь будет отличной.

Спасибо, дайте мне знать, если больше информации в нужном

+0

Похоже, сводная переменная является строкой, а не целым числом. Не могли бы вы опубликовать код для sorted()? – raphonic

+0

Вот код функции сортировки. Защиту Сортировки (Unsorted, стержень): SortedData = отсортированы (Unsorted, реверс = True, ключ = lambdak: к [сводному]) возврату SortedData – Totothejuggler

ответ

0

Я думаю, что проблема в линии 89,

GetTotalCitations Wrt_CitationURL = Sorting(Department, "CitationURL") 

Либо «CitationUrl» должно быть целым индексом, или значение стоимости прошло к функции key в sorted() должен быть словарь.

+0

Может быть, но это не похоже, чтобы сделать разницу, когда я делаю это другой способ, любая идея, почему это может быть? – Totothejuggler

+0

Это может помочь при печати вывода URLStoScrape. Я получаю что-то похожее на это [[Это пусто] [{} {} {} {} {} {} {}]]. все, заключенное в {}, содержит данные внутри. Но когда я печатаю equivulent, когда у меня есть все перечисленные URL, я получаю что-то вроде этого {{} {} {} {} {} {}]. Может ли это быть дополнительным списком и пустым списком, вызывающим проблему? – Totothejuggler

+0

Возможно, функция сортировки не учитывает пустые результаты? – raphonic

Смежные вопросы