Python dict的格式如下:
'{"a":1, "b":2, "c":3}'
注意它使用逗号分隔不同的键:值对。
问题是我有一个CSV文件,也是逗号分开的列:
'
"id", "gender", "age", "name"
"001", "male", "14", "{"first":"Mike", "last":"Green"}"
"002", "female", "15", "{"first":"Kate", "last":"Spear"}"
'
当我这样做时
pandas.read_csv('csvfile.csv', sep = ',', names=["id", "gender", "age", "name"])
我得到了:
'
"id", "gender", "age", "name"
"001", "male", "14", "{"first":"Mike"
"002", "female", "15", "{"first":"Kate"
'
我猜的原因是csv阅读器认为逗号在dict中的第一个名称后面是csv文件中的分隔符。因为我只指定了4列名为" " id","性别","年龄","名称"",所以它忽略姓氏。
对此有何想法或可能的解决方案?谢谢!
答案 0 :(得分:0)
您可以更改read_csv
使用的分隔符。如果您可以更改csv文件以使用分号分隔列,则可以使用read_csv(file.csv, sep=';'...)
或者,您可以修复
中的引用"001", "male", "14", "{"first":"Mike", "last":"Green"}"
到
"001", "male", "14", "{'first':'Mike', 'last':'Green'}"
当然,这两种方法都意味着编辑csv文件。
第二个看起来更健全。正则表达式(\{[^"]*)(")([^}]*\})
可用于匹配大括号内的引号。 (另)