将列表项转换为整数时出错

时间:2014-05-07 08:24:47

标签: python

我正在尝试将class元素传递给方法。元素在其中动态插入当前时间。 Mine类看起来像这样:

class MineContact(dict):
    def __init__(self, **kwargs):
        # set your default values
        import time
        curr_time = repr(time.time()).replace('.', '') 
        self['tel'] = [{
            'type': ['Mobile'],
            'value': '555%s' % curr_time[8:]}]
        ...

所以,我创建了这个类的对象,现在我想将它作为方法参数插入:

contact = MineContact()
extra_text = "-%d" % (self.iteration)
new_contact.insert_phone(contact.tel['value'])

当我运行此脚本时,我收到此类错误:

  

TypeError:list indices必须是整数,而不是str

那么,有谁知道我在哪里弄错了?

1 个答案:

答案 0 :(得分:2)

您有一个字典[{}]而非{}的列表。以下内容适用:

contact = MineContact()
extra_text = "-%d" % (self.iteration)
new_contact.insert_phone(contact.tel[0]['value'])

或者,您可以将self['tel']更改为字典而不是字典列表。这是它的样子:

self['tel'] = {'type': ['Mobile'], 'value': '555%s' % curr_time[8:]}

然后,您的原始new_contact.insert_phone(contact.tel['value'])将起作用