python csv文件读取DictReader

xs一个,请各位帮忙看看哪里错了。一直报错(python)


import csv
with open('./1.xlsx',mode='r',encoding='utf-8',newline='') as fff:
    reader = csv.DictReader(fff)

    headers = reader.fieldnames
    print('表头:{}'.format(headers))
    for i in reader:
        print(i)


  • csv模块,是不是不能直接读取*.xlsx文件呦?反正我是不晓得怎么读取。

    img

#!/sur/bin/nve python
# coding: utf-8

import csv

path = '/sdcard/Documents/'
filename = 'mypycolor_color_dict.csv'
with open(f"{path}/230912.csv") as fff:
#with open('示例.xlsx',mode='r',encoding='utf-8',newline='') as fff:
    reader = csv.DictReader(fff)
    headers = reader.fieldnames
    print('表头:{}'.format(headers))
    for i in reader:
        print(i)
  • csv.DictReader是把数据读成字典dict

    img


    csv.DictReader方法我不可以直接读取*.xlsx文件。

【以下回答由 GPT 生成】

问题所在:

从你提供的代码来看,你试图使用csv.DictReader来读取一个Excel文件(扩展名为.xlsx),而csv.DictReader是用来读取CSV文件的。因此,代码中的open函数应该指向一个CSV文件,而不是一个Excel文件。这是导致代码无法执行的主要原因。

解决方案:

(1)将Excel文件转换为CSV文件:你可以使用Excel软件将.xlsx文件另存为CSV文件。另存为时,请确保选择合适的编码和分隔符(通常是逗号)。

(2)修改代码以读取CSV文件:确保open函数指向正确的CSV文件路径。另外,注意迭代reader对象时要在with语句之内进行,否则文件会在迭代之后被关闭,导致无法正确读取。

import csv

with open('./1.csv', mode='r', encoding='utf-8', newline='') as fff:
    reader = csv.DictReader(fff)

    headers = reader.fieldnames
    print('表头: {}'.format(headers))
    for i in reader:
        print(i)

请注意将上面的代码中的./1.csv替换为你实际的CSV文件路径。此代码会打印每一行数据所对应的字典。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

csv.DictReader 并不支持直接读取 Excel 文件(.xlsx 格式)。它只能读取 CSV(逗号分隔值)文件。

如果你想读取 Excel 文件,可以使用 pandas 库来处理。你可以先安装 pandas 库,然后使用 pandas.read_excel() 函数读取 Excel 文件。

以下是修改后的代码示例:

import pandas as pd

df = pd.read_excel('./1.xlsx')
headers = df.columns.tolist()  # 获取列名
print('表头:{}'.format(headers))

for index, row in df.iterrows():
    print(row.to_dict())

确保在运行代码之前安装了 pandas 库。

注意:你需要在运行代码之前先安装 pandas 和对应的依赖项。你可以使用以下命令来安装:

pip install pandas openpyxl

其中 openpyxlpandas 使用的 Excel 文件处理库。

详细的可以看我博文,有专门讲这块的