python - 通过 DictWriter (Python) 将字典写入 CSV 文件

标签 python csv dictionary

DictWriter 似乎不适合我。

当前代码:

myfile = open('hashdict.csv', 'wb')
fieldnames = ('md5', 'value')
myWriter = csv.DictWriter(myfile, fieldnames=fieldnames)
headers = dict((n,n) for n in fieldnames)
myWriter.writerow(headers)
for n in dictToSearch:
    myWriter.writerow(n)
myfile.close()

回溯:

Traceback (most recent call last):
  File "hash.py", line 42, in <module>
    myWriter.writerow(n)
  File "C:\Python27\lib\csv.py", line 148, in writerow
    return self.writer.writerow(self._dict_to_list(rowdict))
  File "C:\Python27\lib\csv.py", line 144, in _dict_to_list
    ", ".join(wrong_fields))
ValueError: dict contains fields not in fieldnames: d, 1, a, 5, 0, d, 0, a, 1, 7
, 0, e, 5, e, a, 9, f, e, b, 6, f, 7, 9, 6, 1, 3, 6, 3, f, 6, d, 9

字母数字字符来自 MD5 哈希值,但这就是我能告诉你的全部内容。我查看了文档,似乎无法理解它。我想做的是从名为 dictToSearch 的字典中创建一个 CSV 文件。

预先感谢您的帮助,如果您需要任何其他信息,请告诉我。

完整代码链接:http://pastebin.com/A3E4AJfV

最佳答案

这里缺少的关键信息:什么是 dictToSearch?我猜它类似于 {'e2fc714c4727ee9395f324cd2e7f331f': 'abcd', '098f6bcd4621d373cade4e832627b4f6': 'test'}。

如果是这样,这里的问题是“for n in dictToSearch”将 n 设置为 dictToSearch 的第一个键 - 这将是一个 MD5 哈希值。然后 writerow(n) 将该 MD5 哈希字符串解释为本身由单字符键和值组成的字典,而不是字符串。

我怀疑你真正想做的是:

for key, value in dictToSearch.items():
    myWriter.writerow({'md5' : key, 'value': value})

它将 dictToSearch 中的条目转换为与您正在使用的字段名称相匹配的自己的字典。

关于python - 通过 DictWriter (Python) 将字典写入 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668460/

相关文章:

javascript - 是否有一个 javascript 对象等同于 python 的 pop() on dicts?

python - 如何实现快速傅里叶变换来关联两个二维数组?

javascript - 如何访问 JavaScript 事件回调函数中的变量?

ios - swift 错误 : Reference to generic type Dictionary requires arguments in <. ..>

python - 我有一个包含字典的元组列表。如何编辑我的代码以在这些字典内的单独列表中查找值?

python - 如何在 QTextEdit 小部件的顶部插入文本?

python - librosa 无法打开由 librosa 创建的 .wav 文件?

php - 如何在 yii 1.16 中将 excel 数据导入 mySQL

Excel 更改日期格式

python - 如何更改字典的键?