类型错误:'str'对象不支持迭代中的项分配



我正在尝试处理一些数据,但是当我尝试迭代字典时,我得到错误TypeError: 'str' object does not support item assignment

这是我的代码:

from datetime import datetime
import pandas as pd
data_origin = {datetime.strptime('2020-10-23', '%Y-%m-%d'): [77, 77], datetime.strptime('2020-10-22', '%Y-%m-%d'): [85, 84]}
iot = pd.DataFrame.from_dict(data_origin, orient='index', columns=['shirt', 'shoes']) #index of interest
key_list = ['shirt', 'shoes']
rq = {'shirt': {'top': {'shirts black': 100, 'shirts white': 50}}, 'rising': {'coat': 100, 'trenchcoat': 65}} #related queries
rt = {}
iot2 = {}
data = dict(zip(['key','iot','rq','rt','iot2'],[key_list,iot,rq,rt,iot2]))
iterations = 1
print(type(data))
for i in range(iterations):
if i==0:
for t in data:
t['topic_name']=''

我错在哪里?

在不知道你想要达到什么目的的情况下,我可以解释这个错误。

在第10行定义时,data是一个字典(注意dict())。当在python中遍历字典时,要遍历它的键。

因此,当您使用for t in data循环时,变量t只包含一个键,其数据类型为str。在下一行,您尝试将一个项目添加到t,就好像它是dict一样。但str对象不支持此操作,因此出现错误。

如果您的目的是遍历字典data中的键和值,您可以使用for key, value in data.items():,然后使用value进行进一步处理。

最新更新