Skip to main content
 首页 » 编程设计

Python之从 CSV 中读取列表字典

2025年05月04日30Terrylee

我正在尝试从 CSV 文件中读取 List 字典。 我正在尝试访问如下数据结构:

dbfree = {u'keyname': [u'x', 'y', 'z']} 

这些数据结构使用以下代码存储在 CSV 文件中:

for key, val in dbfree.items(): 
     w.writerow([key, val]) 

我是这样读CSV的:

dbproj = {} 
for key, val in unicodecsv.reader(open(filename)): 
    dbproj[key] = val 

但是输出是这样的:

{u'key name': u"[u'x', 'y', 'z']" 

如何从我的 CSV 文件中正确检索列表的完整词典?

请您参考如下方法:

您在此处编写了嵌套列表的 repr() 输出:

for key, val in dbfree.items(): 
    w.writerow([key, val]) 

这里的val是[u'x', 'y', 'z'];要将其存储在一列中,csv 文件只需写入 repr(val) 的结果。

您可以使用 ast.literal_eval() function 将该字符串再次解码为 Python 对象:

import ast 
 
dbproj = {} 
for key, val in unicodecsv.reader(open(filename)): 
    dbproj[key] = ast.literal_eval(val) 

ast.literal_eval() 将输入解释为 Python 表达式,但限于文字,Python 语法定义了字典、列表、元组、集合和字符串、数字、 bool 值和 None。