如何修复此错误“不可损坏类型:'列表”?

2024-04-25 08:05:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的CSV文件示例中,我希望通过考虑三个独立变量,即“IpAddress”、“timeStamp”和“screenName”,获得每个用户在每个屏幕上的所有时间。我得到了错误“不可损坏的类型:'列表'”

fn3 = 'screenviewclean.1.csv'
f2 = open(fn3,"r")
filereader = csv.reader(f2)
mhist = {}
i = 0

for line in filereader:
    i+=1   
    sec= line [10]
    IpAddress = line [2]
    timeStamp = line [6]
    time = timeStamp[11:13]+ timeStamp[13:19]
    Screen_View = line [7]
    if i>1:
        if IpAddress in mhist.keys():
            mhist[IpAddress].append(Screen_View)
        else:
            mhist[IpAddress] = [Screen_View] 
    
#print (mhist)

chist = {}

for ip, screen in mhist.items():
    k = screen
    #print (k)
    if k in chist.keys():
        chist[k].append (time)
    else:
        chist[k] = [time]

print (chist)

这是我拥有的csv文件示例:

Unnamed: 0  lastLoggedVersion   IpAddress   deviceId    deviceOS    userId  timeStamp   screenName  userType    doc.id  seconds
0   1.6.0.1 192.168.0.77    7612F62D-E392-4269-B49B-4F1214AA3888    iOS13.6.1   5U1XW8wkoqUPCTGhC1ni9Whinvt1    2020-11-13 22:28:55.029000+00:00    StudentProfile  student 00mrvPyS9Y2Al9iTN1vw    1231534.547
2   1.6.1.44    10.0.2.16   40a4dc7cb837fdec    Android10   27lFw6EnfbYFsU3F8AEejYGQRRl1    2020-11-12 21:28:00.998000+00:00    CompanySettings company 01dMOvAgsRTPSWXTDXIh    1141480.516
6   1.6.0.43    192.168.87.241  ec62706b2834bfcc    Android9    7XBtY5ZDxcPWYF7sGECDZxnH71b2    2020-11-12 21:41:33.126000+00:00    DiscoverCompanies   student 064kDvawK8cJoRl5if9d    1142292.644

Tags: 文件csvinview示例iftimeline
1条回答
网友
1楼 · 发布于 2024-04-25 08:05:35

你有for ip, screen in mhist.items()。但字典中的值是一个屏幕列表,而不是一个屏幕

你需要

for ip, screens in mhist.items():
    for screen in screens:
       ....

相关问题 更多 >