Python 3.x 导入CSV-将数据从字典写入文件-错误
我是Python新手。我正在尝试将一些数据写入CSV文件。我想从Python字典中写入文件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
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'})
谢谢。你是对的。我用上面的格式创建了它,它可以工作。