Python 3.x 导入CSV-将数据从字典写入文件-错误

Python 3.x 导入CSV-将数据从字典写入文件-错误,python-3.x,dictionary,export-to-csv,Python 3.x,Dictionary,Export To Csv,我是Python新手。我正在尝试将一些数据写入CSV文件。我想从Python字典中写入文件 def write_info(self): fname='userinfo.csv' field_names = ['Username', 'Password'] with open(fname, 'w') as op_file: op_writer = csv.DictWriter(op_file, fieldnames=field

我是Python新手。我正在尝试将一些数据写入CSV文件。我想从Python字典中写入文件

def write_info(self):
        fname='userinfo.csv'
        field_names = ['Username', 'Password']
        with open(fname, 'w') as op_file:
            op_writer = csv.DictWriter(op_file, fieldnames=field_names)
            op_writer.writeheader()
            **for row in self.user_dict:
                op_writer.writerow(row)**
你们能告诉我怎么读字典并把它写进文件吗。当我打印dictionary self.user_dict时,我可以看到值

当我看到

**for row in self.user_dict:
                op_writer.writerow(row)**
我得到了错误

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-44-e1069dd9aafc> in <module>()
     28 
     29 # writing to file
---> 30 auth.write_info()

<ipython-input-44-e1069dd9aafc> in write_info(self)
     17             op_writer.writeheader()
     18             for row in self.user_dict:
---> 19                 op_writer.writerow(row)
     20 
     21        # fill in your code

~\AppData\Local\Continuum\anaconda3\lib\csv.py in writerow(self, rowdict)
    153 
    154     def writerow(self, rowdict):
--> 155         return self.writer.writerow(self._dict_to_list(rowdict))
    156 
    157     def writerows(self, rowdicts):

~\AppData\Local\Continuum\anaconda3\lib\csv.py in _dict_to_list(self, rowdict)
    146     def _dict_to_list(self, rowdict):
    147         if self.extrasaction == "raise":
--> 148             wrong_fields = rowdict.keys() - self.fieldnames
    149             if wrong_fields:
    150                 raise ValueError("dict contains fields not in fieldnames: "

**AttributeError: 'str' object has no attribute 'keys'**
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在()
28
29#写入文件
--->30身份验证写入信息()
写入信息(自我)
17 op_编剧、编剧负责人()
18对于self.user_dict中的行:
--->19 op_writer.writerow(世界其他地区)
20
21#填写您的代码
~\AppData\Local\Continuum\anaconda3\lib\csv.py in writerow(self,rowdict)
153
154 def writerow(self,rowdict):
-->155返回self.writer.writerow(self.\u dict\u to\u list(rowdict))
156
157 def writerows(self,rowdicts):
目录到列表中的~\AppData\Local\Continuum\anaconda3\lib\csv.py(self,rowdict)
146定义目录列表(self,rowdict):
147如果self.extraction==“升起”:
-->148错误的_字段=rowdict.keys()-self.fieldnames
149如果字段错误:
150 raise VALUETERROR(“dict包含字段名以外的字段:”
**AttributeError:“str”对象没有属性“keys”**

self.user\u dict变量不包含dict

按照您想要的方式,user_dict应该是一个dict列表

user_dict = []
user_dict.append({'username': 'joe', 'password': 'test'})
user_dict.append({'username': 'doe', 'password': 'test'})

谢谢。你是对的。我用上面的格式创建了它,它可以工作。