Python TypeError:参数1必须有一个“;写下;方法--从dict创建csv
我试图从dict创建csv,但收到错误: 创建中的Python TypeError:参数1必须有一个“;写下;方法--从dict创建csv,python,python-3.x,csv,Python,Python 3.x,Csv,我试图从dict创建csv,但收到错误: 创建中的 writer=csv.writer('userInfo.csv') TypeError:参数1必须具有“write”方法 代码: 您应该将文件(而不是文件名)传递给编写器: with open('userInfo.csv', 'wb') as userInfoCsv: writer = csv.writer(userInfoCsv) 变量名称中不应包含“.”符号,因此变量应为userInfoCsv或user\u info\u csv
writer=csv.writer('userInfo.csv')
TypeError:参数1必须具有“write”方法
代码:
您应该将文件(而不是文件名)传递给编写器:
with open('userInfo.csv', 'wb') as userInfoCsv:
writer = csv.writer(userInfoCsv)
userInfoCsv
或user\u info\u csv
userInfo=open('userInfo.csv','wb')
为什么要使用这一行?稍后您可以使用和open('userInfo.csv','wb')打开文件。
csv.DictWriter
with open('userInfo.csv', 'wb') as user_info_csv:
writer = csv.DictWriter(user_info_csv, fieldnames=['your', 'column', 'names'], delimiter=';')
writer.writerow(userInfoDict)
def create_csv(userInfoDict):
import csv
with open('userInfo.csv', 'wb') as userInfo:
for key in userInfoDict:
if len(userInfoDict['orgID']) == 0:
print('Not a valid user: No orgID')
return None
elif len(userInfoDict['firstName']) == 0:
print('Not a valid user: No First Name')
return None
elif len(userInfoDict['emailAddress']) == 0 or len(userInfoDict['phoneNumber']) == 0:
print('Not a valid user: No Email or Phone')
return None
else:
writer = csv.DictWriter(userInfo, fieldnames=userInfoDict.keys(), delimiter=';')
# writer.writeheader() # If you want to add header
writer.writerow(userInfoDict)
您应该将文件(而不是文件名)传递给编写器:
with open('userInfo.csv', 'wb') as userInfoCsv:
writer = csv.writer(userInfoCsv)
userInfoCsv
或user\u info\u csv
userInfo=open('userInfo.csv','wb')
为什么要使用这一行?稍后您可以使用和open('userInfo.csv','wb')打开文件。
csv.DictWriter
with open('userInfo.csv', 'wb') as user_info_csv:
writer = csv.DictWriter(user_info_csv, fieldnames=['your', 'column', 'names'], delimiter=';')
writer.writerow(userInfoDict)
def create_csv(userInfoDict):
import csv
with open('userInfo.csv', 'wb') as userInfo:
for key in userInfoDict:
if len(userInfoDict['orgID']) == 0:
print('Not a valid user: No orgID')
return None
elif len(userInfoDict['firstName']) == 0:
print('Not a valid user: No First Name')
return None
elif len(userInfoDict['emailAddress']) == 0 or len(userInfoDict['phoneNumber']) == 0:
print('Not a valid user: No Email or Phone')
return None
else:
writer = csv.DictWriter(userInfo, fieldnames=userInfoDict.keys(), delimiter=';')
# writer.writeheader() # If you want to add header
writer.writerow(userInfoDict)
更改代码以匹配您的修复,但似乎没有任何效果。同样的错误。在create_csv writer=csv.writer('userInfocsv')类型错误:参数1必须有一个“write”方法当然,
open
应该发生在循环之前。因为每个循环周期都会再次打开文件并覆盖以前的内容。@Matthia是肯定的,所以使用它没有意义statement@Eric你应该删除引号。writer(userInfocsv)不是csv。writer('userInfocsv')可能也想使用方言;至少将delimeter
传递到writer()
。更改代码以匹配您的修复程序,但似乎没有任何效果。同样的错误。在create_csv writer=csv.writer('userInfocsv')类型错误:参数1必须有一个“write”方法当然,open
应该发生在循环之前。因为每个循环周期都会再次打开文件并覆盖以前的内容。@Matthia是肯定的,所以使用它没有意义statement@Eric你应该删除引号。writer(userInfocsv)不是csv。writer('userInfocsv')可能也想使用方言;至少将delimeter
传递到writer()
。