Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:参数1必须有一个“;写下;方法--从dict创建csv_Python_Python 3.x_Csv - Fatal编程技术网

Python TypeError:参数1必须有一个“;写下;方法--从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

我试图从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

  • 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()