Python-从CSV读取列表字典
我正在尝试从CSV文件中读取列表字典。 我尝试访问数据结构,如:Python-从CSV读取列表字典,python,list,csv,dictionary,Python,List,Csv,Dictionary,我正在尝试从CSV文件中读取列表字典。 我尝试访问数据结构,如: 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]
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)
的结果
您可以使用以下命令再次将该字符串解码为Python对象:
ast.literal_eval()
将输入解释为Python表达式,但仅限于文本,即定义对象(如字典、列表、元组、集合和字符串、数字、布尔值和None
的Python语法。您在此处编写了嵌套列表的repr()
输出:
for key, val in dbfree.items():
w.writerow([key, val])
这里的val
是[u'x',y',z']
;要将其存储在一列中,csv
文件只需写入repr(val)
的结果
您可以使用以下命令再次将该字符串解码为Python对象:
ast.literal_eval()
将输入解释为Python表达式,但仅限于文本、定义字典、列表、元组、集合和字符串、数字、布尔值和None
等对象的Python语法。如果需要对值进行反序列化,可以使用json
模块:
import json
for key, val in dbfree.items():
w.writerow([key, json.dumps(val)])
阅读:
dbproj = {}
for key, val in unicodecsv.reader(open(filename)):
dbproj[key] = json.loads(val)
您需要反序列化该值,您可以使用
json
模块:
import json
for key, val in dbfree.items():
w.writerow([key, json.dumps(val)])
阅读:
dbproj = {}
for key, val in unicodecsv.reader(open(filename)):
dbproj[key] = json.loads(val)