Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-从CSV读取列表字典_Python_List_Csv_Dictionary - Fatal编程技术网

Python-从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]

我正在尝试从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] = 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)