Python 使用CSV文件中的列表创建嵌套字典
我有一个CSV文件(“import.CSV”),其中包含以下数据,其中每个值都是一个字符串Python 使用CSV文件中的列表创建嵌套字典,python,string,list,csv,dictionary,Python,String,List,Csv,Dictionary,我有一个CSV文件(“import.CSV”),其中包含以下数据,其中每个值都是一个字符串 KID, C1, C2, C3 ID1, X1, "X2, X2.5", X3 ID2, "Y1, Y1.5", Y2, Y3 我想使用如下数据创建一个嵌套字典 'KID' { 'ID1' { 'C1': 'X1', 'C2': ['X2', 'X2.5'], 'C3': 'X3', }, 'ID2' { 'C1':
KID, C1, C2, C3
ID1, X1, "X2, X2.5", X3
ID2, "Y1, Y1.5", Y2, Y3
我想使用如下数据创建一个嵌套字典
'KID' {
'ID1' {
'C1': 'X1',
'C2': ['X2', 'X2.5'],
'C3': 'X3',
},
'ID2' {
'C1': ['Y1', 'Y1.5'],
'C2': 'Y2',
'C3': 'Y3',
},
我有以下代码
import csv
dict = {}
with open("import.csv", mode='r') as data_file:
data = csv.DictReader(data_file)
for row in data:
item = artists.get(row["artist"], dict())
item["C1"] = str(row["C1"])
item["C2"] = str(row["C2"])
item["C3"] = str(row["C3"])
dict[row["KID"]] = item
取而代之的是,我得到了一本
'KID' {
'ID1' {
'C1': 'X1',
'C2': 'X2, X2.5',
'C3': 'X3',
},
'ID2' {
'C1': 'Y1, Y1.5',
'C2': 'Y2',
'C3': 'Y3',
},
我通过按值查找字典中的键来遍历字典,所以字符串/列表问题把我搞砸了。是否有办法更改字典创建或更改CSV设置方式?如果存在多个值,则使用包装函数查找返回列表,否则返回字符串
def get_str_or_list(value):
return value.split(",") if "," in value else value
item["C1"] = get_str_or_list(str(row["C1"]))
item["C2"] = get_str_or_list(str(row["C2"]))
item["C3"] = get_str_or_list(str(row["C3"]))
只需查找
,
,然后执行str.split(“,”
”)?似乎您正在对可能是列表的内容进行字符串化。但是如果没有看到arists.get
,就无法判断。此外,调用变量dict
会覆盖内置函数<代码>行[“艺术家”]也失败。请提供一个。请提供一个。