enter image description here

希望将列标题用作键,而关键字周围没有引号,而将列中的后续值用作键的值。

这是我到目前为止的内容:

import csv

with open('zinc3.csv') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print row
        print ("#1\n")

最佳答案

您可以在python中使用pandas库,该库可以处理:


读取csv文件:使用pandas.read_csv
将其转换为词典列表:使用pandas.dataframe.to_dict


这是一个通用的可复制示例(您需要安装熊猫)

from StringIO import StringIO
import pandas as pd

data = """
col1|col2
1|2
21|2
14|2
12|42
10|2
1|27
"""

# StringIO(data) to simulate a csv file
# replace it with the name of your csv file
df = pd.read_csv(StringIO(data), sep="|")

print(df.to_dict(orient="records"))


输出看起来像这样:

[{'col2': 2, 'col1': 1}, {'col2': 2, 'col1': 21}, {'col2': 2, 'col1': 14}, {'col2': 42, 'col1': 12}, {'col2': 2, 'col1': 10}, {'col2': 27, 'col1': 1}]


对于您的特定情况,您需要执行以下操作

import pandas as pd
df = pd.read_csv("zinc3.csv", sep="|")
print(df.to_dict(orient="records"))

10-07 15:18