TypeError: बाइट्स जैसी ऑब्जेक्ट की आवश्यकता होती है, अजगर और CSV में 'str' की नहीं




python-3.x beautifulsoup (3)

आप पायथन 3 के बजाय पायथन 2 पद्धति का उपयोग कर रहे हैं।

परिवर्तन:

outfile=open('./immates.csv','wb')

सेवा:

outfile=open('./immates.csv','w')

और आपको निम्न आउटपुट के साथ एक फ़ाइल मिलेगी:

SNo,States,Dist,Population
1,Andhra Pradesh,13,49378776
2,Arunachal Pradesh,16,1382611
3,Assam,27,31169272
4,Bihar,38,103804637
5,Chhattisgarh,19,25540196
6,Goa,2,1457723
7,Gujarat,26,60383628
.....

पायथन 3 में csv टेक्स्ट मोड में इनपुट लेता है, जबकि पायथन 2 में इसे बाइनरी मोड में लिया गया।

जोड़ने के लिए संपादित किया गया

यहाँ कोड है जो मैंने चलाया:

url='http://www.mapsofindia.com/districts-india/'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html)
table=soup.find('table', attrs={'class':'tableizer-table'})
list_of_rows=[]
for row in table.findAll('tr')[1:]:
    list_of_cells=[]
    for cell in row.findAll('td'):
        list_of_cells.append(cell.text)
    list_of_rows.append(list_of_cells)
outfile = open('./immates.csv','w')
writer=csv.writer(outfile)
writer.writerow(['SNo', 'States', 'Dist', 'Population'])
writer.writerows(list_of_rows)

TypeError: बाइट्स जैसी वस्तु की आवश्यकता होती है, न कि 'str' की

Csv फ़ाइल में HTML तालिका डेटा को बचाने के लिए अजगर कोड के नीचे निष्पादित करते समय त्रुटि हो रही है। पता नहीं कैसे राइडअप मिलता है। मुझे मदद करते हैं।

import csv
import requests
from bs4 import BeautifulSoup

url='http://www.mapsofindia.com/districts-india/'
response=requests.get(url)
html=response.content

soup=BeautifulSoup(html,'html.parser')
table=soup.find('table', attrs={'class':'tableizer-table'})
list_of_rows=[]
for row in table.findAll('tr')[1:]:
    list_of_cells=[]
    for cell in row.findAll('td'):
        list_of_cells.append(cell.text)
    list_of_rows.append(list_of_cells)
outfile=open('./immates.csv','wb')
writer=csv.writer(outfile)
writer.writerow(["SNo", "States", "Dist", "Population"])
writer.writerows(list_of_rows)

अंतिम पंक्ति के ऊपर।


बस wb को w में बदलें

 outfile=open('./immates.csv','wb') 

सेवा

 outfile=open('./immates.csv','w') 

file = open('parsed_data.txt', 'w')
for link in soup.findAll('a', attrs={'href': re.compile("^http")}): print (link)
soup_link = str(link)
print (soup_link)
file.write(soup_link)
file.flush()
file.close()

मेरे मामले में, मैंने पायथन 3.x के साथ एक .txt लिखने के लिए BeautifulSoup का उपयोग किया। यह एक ही मुद्दा था। जैसा कि @tsduteba ने कहा, पहली पंक्ति में 'wb' को 'w' में बदलें।





html-table