繁体   English   中英

读取 csv 文件,其中一列为 dict 类型

[英]reading csv file where one column is dict type

我有数据要读入.csv 文件,如下所示:

col1,col2,col3,col4,col5
"val1,val2,""{'key1': 'value1', 'key2': 'value2'}"",val4,val5"
"va11,val12,""{'key11': 'value11', 'key12': 'value12'}"",val14,val15"

我尝试通过 pandas 以多种方式导入此文件,但总是出错。 使用 pandas 可以轻松做到这一点吗?

这些行看起来像有效的 CSV 行,然后再次通过 CSV 写入器。 第二遍通过添加引号来转义已经 CSV 文件中的逗号和引号,从而将该行变成单列。 您可以反转该过程以加载 CSV。 或者修复错误的真正来源的作者。

import csv
import pandas as pd
import io

unmangled = io.StringIO()
with open("test.csv", newline="") as infile:
    # header is unmanagled, so just write it
    unmangled.write(next(infile))
    # read the CSV - the first column is a CSV encoded CSV row
    unmangled.writelines(row[0] + "\n" for row in csv.reader(infile))

# rewind and read the unmangled CSV
unmangled.seek(0)
df = pd.read_csv(unmangled)
print(df)

Output

   col1   col2                                      col3   col4   col5
0  val1   val2      {'key1': 'value1', 'key2': 'value2'}   val4   val5
1  va11  val12  {'key11': 'value11', 'key12': 'value12'}  val14  val15

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM