0

我的 django 项目中有一个这样的字典,它对应于一个配置字段:

{u'active': True,
 u'alert': {u'item_sent': True,
            u'emails': [u'test@test.com', u'test@test.com'],
            u'job': u'500.00',
            u'in_negative': False}}

如何遍历上面的每封电子邮件并附'.fake'加到它们的末尾?我就是为了这个——"test@test.com.fake"

我正在这样做,但它没有更改列表项:

for p in practice:
    email_count = len(p.config['alert']['emails'])
    if email_count > 0:
        print 'WE HAVE EMAILS'
        i = 0
        while i < email_count:        
            p.config['alert']['emails'][i] += '.fake'
            print p.config['alert']['emails'][i]
            i += 1
        p.save()
4

2 回答 2

3

我看不出为什么您的代码无法更改列表项,但试试这个:

for p in practice:
    p.config['alert']['emails'] = [e + '.fake' for e in p.config['alert']['emails']]
于 2012-12-07T15:24:33.233 回答
0

原来我需要先将 p.config 分配给一个变量,然后再编辑它。“P”代表练习对象。

for p in practices:
    config = p.config

    config['alert']['emails'] = [
        '.{0}.fake'.format(x)
        for x in config['alert']['emails']
    ]

    p.config = config

    p.save()
于 2012-12-07T16:18:56.667 回答