![](/img/trans.png)
[英]Python TypeError: __init__() got multiple values for argument 'master'
[英]TypeError: __init__() got multiple values for argument 'fieldnames'
我已经在网站上进行了网上抓取练习,并且尝试将数据放入可以导出到csv的pandas数据框中,当我遇到一个TypeError: __init__() got multiple values for argument 'fieldnames'
出现了。 我想使用csv模块写入文件。 有人可以解释错误如何发生以及如何解决吗? 我的代码如下:
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import csv
my_url = 'https://www.allagents.co.uk/find-agent/london/'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, 'html.parser')
containers = page_soup.findAll('div', {'class':'itemlabel3'})
filename = "webscrape.csv"
records = []
for container in containers:
comp_name = container.find('div', {'class':'labelleft2 col-md-10'}).div.h4.a.text
address=container.find('div', {'class':'labelleft2 col-md-10'}).div.p.text.replace('\n','')
tel = container.find('div', {'class':'labelleft2 col-md-10'}).div.find('p', {'style':'clear: both; margin-bottom: 15px;'}).strong.text
records.append({'company': comp_name, 'address': address, 'telephone': tel})
writer = csv.DictWriter(filename, "w", fieldnames=['company', 'address', 'telephone'])
writer.writeheader()
for r in records:
writer.writerow(r)
错误出现在网上:
writer = csv.DictWriter(filename, "w", fieldnames=['company', 'address', 'telephone'])
在此先感谢您的帮助。
在csv.DictWriter
,前两个参数是文件对象(不是文件名),然后是fieldnames
(您指定为"w"
)。 尝试这个:
with open(filename, 'w') as f:
writer = csv.DictWriter(f, ['company', 'address', 'telephone'])
# write stuff in this block
我怀疑您对DictWriter
的调用有太多参数:
writer = csv.DictWriter(filename, "w", fieldnames ...
^
what is this?
我认为应该是:
f = open(filename, 'w')
writer = csv.DictWriter(f, fieldnames ...
在您的呼叫中, fieldnames
参数被分配为"w"
,但是您还将提供自己的版本作为列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.