Python 3.x TypeError:列表索引必须是整数或片,而不是str(使用Python 3.7)

Python 3.x TypeError:列表索引必须是整数或片,而不是str(使用Python 3.7),python-3.x,Python 3.x,TypeError:列表索引必须是整数或片,而不是str(使用Python 3.7) 我知道为什么会出现这种类型错误“只是意味着for循环说它不能在类型字符串参数上逐个索引迭代”,尝试了很多不同的策略,请帮助 from operator import itemgetter balance = 1000 name = "Charles De." acc_no = "1235621234" print("Name: ",name, "Account: ", acc_no, "Original

TypeError:列表索引必须是整数或片,而不是str(使用Python 3.7)

我知道为什么会出现这种类型错误“只是意味着for循环说它不能在类型字符串参数上逐个索引迭代”,尝试了很多不同的策略,请帮助

from operator import itemgetter
balance = 1000
name = "Charles De."
acc_no = "1235621234"

print("Name: ",name,   "Account: ", acc_no, "Original Balance: ", "$" + 
str(balance))
charges_list = []
charges_dict = []
for charge_string in open("market.txt"):
    charge_info_list = charge_string.strip().split(',')

charge_info = dict()
charge_info['vendor'] = charge_info_list[0]
charge_info['date'] = charge_info_list[1]
charge_info['charge'] = charge_info_list[2]

charges_list.append(charge_info)

if charge_info['vendor'] not in charges_dict:
    charges_dict[charge_info['vendor']] = list()

charges_dict[charge_info['vendor']].append(charge_info)
charges_sorted_by_date = sorted(charges_list, key=itemgetter('date'))
获取此错误

====== RESTART: C:\Users\codehax41\Documents\Python\nested_dict_sort.py ======
Name:  Charles De. Account:  1235621234 Original Balance:  $1000
Traceback (most recent call last):
File "C:\Users\codehax41\Documents\Python\nested_dict_sort.py", line 20, in      
<module>
charges_dict[charge_info['vendor']] = list()
TypeError: list indices must be integers or slices, not str
>>> 
====RESTART:C:\Users\codehax41\Documents\Python\nested\u dict\u sort.py======
姓名:Charles De.账户:1235621234原始余额:1000美元
回溯(最近一次呼叫最后一次):
文件“C:\Users\codehax41\Documents\Python\nested\u dict\u sort.py”,第20行,在
费用目录[费用信息['vendor']]=列表()
TypeError:列表索引必须是整数或片,而不是str
>>> 

费用清单
是代码中的一个
清单
(您有
费用清单=[]
),但稍后在代码中您将其用作
清单
。您应该使用以下任一方法将其初始化为空的
dict

charges_dict = {}
或:


非常感谢你。请解释一下。
charges_dict = dict()