Python3 调用 csv.DictReader - 对象不可调用
Python3 calling csv.DictReader - object is not callable
我是Python的新手,正在编写一个简单的代码来对我的日常开支进行分类。该程序读取包含交易的 csv 文件,执行一些数学运算,然后打印出结果。在此先感谢您的支持。
问题: 在代码中第二次调用csv.DictReader时报错。
错误:
第 12 行,在 csv.reader = csv.DictReader(csvfile, delimiter = ';')
文件“/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/csv.py”,第 86 行,在 init 中
self.reader = reader(f, 方言, *args, **kwds)
类型错误:'DictReader' 对象不可调用
import csv
ledgerDebit = []
ledgerCredit = []
with open('jan2022_full.csv', 'r') as csvfile:
csv.reader = csv.DictReader(csvfile, delimiter = ';')
for row in csv.reader:
ledgerDebit.append(row)
with open('jan2022credit_full.csv', 'r') as csvfile:
csv.reader = csv.DictReader(csvfile, delimiter = ';')
for row in csv.reader:
ledgerCredit.append(row)
而不是
csv.reader = csv.DictReader(csvfile, delimiter = ';')
使用
import csv
ledgerDebit = []
ledgerCredit = []
with open('jan2022_full.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile, delimiter = ';')
for row in reader:
ledgerDebit.append(row)
with open('jan2022credit_full.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile, delimiter = ';')
for row in reader:
ledgerCredit.append(row)
reader
只是 class reader 的一个变量,如果您使用 csv.reader = ...
,您实际上是在尝试覆盖 class 中的定义csv
模块
我是Python的新手,正在编写一个简单的代码来对我的日常开支进行分类。该程序读取包含交易的 csv 文件,执行一些数学运算,然后打印出结果。在此先感谢您的支持。
问题: 在代码中第二次调用csv.DictReader时报错。
错误: 第 12 行,在 csv.reader = csv.DictReader(csvfile, delimiter = ';') 文件“/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/csv.py”,第 86 行,在 init 中 self.reader = reader(f, 方言, *args, **kwds) 类型错误:'DictReader' 对象不可调用
import csv
ledgerDebit = []
ledgerCredit = []
with open('jan2022_full.csv', 'r') as csvfile:
csv.reader = csv.DictReader(csvfile, delimiter = ';')
for row in csv.reader:
ledgerDebit.append(row)
with open('jan2022credit_full.csv', 'r') as csvfile:
csv.reader = csv.DictReader(csvfile, delimiter = ';')
for row in csv.reader:
ledgerCredit.append(row)
而不是
csv.reader = csv.DictReader(csvfile, delimiter = ';')
使用
import csv
ledgerDebit = []
ledgerCredit = []
with open('jan2022_full.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile, delimiter = ';')
for row in reader:
ledgerDebit.append(row)
with open('jan2022credit_full.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile, delimiter = ';')
for row in reader:
ledgerCredit.append(row)
reader
只是 class reader 的一个变量,如果您使用 csv.reader = ...
,您实际上是在尝试覆盖 class 中的定义csv
模块