我正在尝试处理一些数据,但是当我尝试迭代字典时,我得到错误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
进行进一步处理。