首页 > 解决方案 > 如何将 python dictReader 用于多个分隔符?

问题描述

我有这样的 CSV 文件

slNo,quatinty,data1,data2,data2
1|2|3|sssa|QQ
1|2|3|sssa|QQ
1|2|3|sssa|QQ
1|2|3|sssa|QQ
1|2|3|sssa|QQ

第一行是逗号分隔的分隔符,所有其他行都是'|' 分开。我为此使用了python dict阅读器。有什么我可以在这个文件中使用字典阅读器的吗

reader = csv.DictReader(data, delimiter=',')

标签: pythonpython-3.xcsv

解决方案


您可以pandas为此使用:

import pandas as pd

df = pd.read_csv('FILE.csv', skiprows=1, delimiter='|', header=None)

with open('FILE.csv') as f:
  df.columns = f.read().strip().split("\n")[0].split(",")

print(df)

这是我的输出:

   slNo  quatinty  data1 data2 data2
0     1         2      3  sssa    QQ
1     1         2      3  sssa    QQ
2     1         2      3  sssa    QQ
3     1         2      3  sssa    QQ
4     1         2      3  sssa    QQ

要获取字典,请使用df.to_dict()

print(df.to_dict())

输出:

{'slNo': {0: 1, 1: 1, 2: 1, 3: 1, 4: 1}, 'quatinty': {0: 2, 1: 2, 2: 2, 3: 2, 4: 2}, 'data1': {0: 3, 1: 3, 2: 3, 3: 3, 4: 3}, 'data2': {0: 'QQ', 1: 'QQ', 2: 'QQ', 3: 'QQ', 4: 'QQ'}}

使用 Pandas 数据框要容易得多。


推荐阅读