我有这样的Python代码:Python的错误时tryint通过索引来访问列表 - “列表索引必须是整数,而不是STR”
sm.GetSMSStatus()
sm.GetSMSFolders()
sms = sm.GetNextSMS(Start = True, Folder=0)
sms = sm.GetNextSMS(Location = sms['Location'], Folder=0)
sms = sm.GetSMS(Location = loc, Folder = 0)
而我得到的错误:
Traceback (most recent call last):
File "sms_teste.py", line 43, in <module>
sms = sm.GetNextSMS(Location = sms['Location'], Folder=0)
TypeError: list indices must be integers, not str
我做了什么方式来解决:
首先,我一直在寻找答案了相同的问题,但是我无法找到任何类似。
根据由短信变量的打印,看看返回结果是什么,看看如何分配“位置”,这是打印上:
[{'RejectDuplicates': 0, 'SMSCDateTime': datetime.datetime(2014, 7, 1, 16, 31, 58), 'Class': 1, 'Name': u'', 'InboxFolder': 0, 'Text': u'dsgfzggzdfrg', 'SMSC': {'DefaultNumber': u'', 'Format': 'Text', 'Number': u'+#####', 'Validity': 'Max', 'Location': 0, 'Name': u''}, 'ReplaceMessage': 0, 'Coding': 'Default_No_Compression', 'Number': u'+#####', 'DateTime': None, 'DeliveryStatus': 0, 'State': 'UnSent', 'MessageReference': 0, 'Length': 12, 'Location': 0, 'Memory': 'SM', 'ReplyViaSameSMSC': 0, 'UDH': {'Text': '', 'ID16bit': 0, 'AllParts': 0, 'ID8bit': 0, 'PartNumber': -1, 'Type': 'NoUDH'}, 'Type': 'Submit', 'Folder': 2}]
而且我注意到,“位置”等于为0,但你的敲门砖,有“位置” 但现在我在一个死胡同,我怎么变换密钥字符串当变量本身具有字符串键作出整数? 我正在使用gammu,因此函数的结果是格式化的,所以返回表单。
有人可以给我吗?
我希望我的信息将是有益的,这样就可以明白我的问题 PS的电话号码都在###上的目的
所以'sms'是含*一个字典,而不是一个字典列表*。 'sms ['Location]''失败。 –