проблема с заполнением листа Excel списком через расширение win32 - PullRequest
0 голосов
/ 21 февраля 2019

У меня проблемы с последней частью, где я заполняю поля словарными элементами в моем списке.Когда я запускаю код, я получаю сообщение об ошибке для первой строки "sh.Cells (row, 1) .Value = business ['address']", говорящее: указатели типа TypeError должны быть целыми числами, а не str.А лист Excel остается безлюдным.

        page = 1 
    fileobj = urllib.urlopen("http://canada411.yellowpages.ca/search/si/" + str(page) + "/Booster%20Juice/Canada") 

    s = fileobj.read() 
    resultlist = list(s)             

    pages = returnpages(s)

    for page in xrange(1,10):

        addresssplit = s.split('<div class="listing__address address mainLocal noNum">') # split the page up into a list based on this delimiter

        for item in addresssplit:
            address = parse(item,'<span class="jsMapBubbleAddress"  itemprop="streetAddress" >','</span>') # extract address
            city = parse(item,'<span class="jsMapBubbleAddress"  itemprop="addressLocality" >','</span>')
            province = parse(item,'<span class="jsMapBubbleAddress"  itemprop="addressRegion" >','</span>')
            postal = parse(item,'<span class="jsMapBubbleAddress"  itemprop="postalCode" >','</span>')
            phone = parse(item,'data-phone="','">')

            if len(address) > 0:
                resultlist.append({'address':address,'city':city, 'province':province,'postal':postal, 'phone':phone})



        fileobj = urllib.urlopen("https://www.yellowpages.ca/search/si/" + str(page + 1) + "/Booster%20Juice/Canada")
        s = fileobj.read()  

excelobj = win32com.client.Dispatch("Excel.Application")
    excelobj.Visible = 1                                                            
    excelobj.Workbooks.Add()                                                        
    sh = excelobj.ActiveSheet                                                       
    sh.Cells(1,1).Value = 'Address'                                                 
    sh.Cells(1,2).Value = 'City'                                                    
    sh.Cells(1,3).Value = 'Province'                                                
    sh.Cells(1,4).Value = 'Postal'                                                  
    sh.Cells(1,5).Value = 'Phone'                                                                                                      

    row = 1
for business in resultlist:                                                     
    sh.Cells(row,1).Value = business['address']                                 
    sh.Cells(row,2).Value = business['city']                                      
    sh.Cells(row,3).Value = business['province']                                
    sh.Cells(row,4).Value = business['postal']                                  
    sh.Cells(row,5).Value = business['phone']                                   
    row +=1      
...