如何将字典转换为attribute = value

时间:2014-04-04 08:05:32

标签: python dictionary type-conversion exec eval

我在Python中有以下字典:

myDic = {}
myDic['username'] = 'smith44'
myDic['password'] = '123'
myDic['email'] = 'smith@gmail.com'

我想把它变成:

username = 'smith44'
password = '123'
email = 'smith@gmail.com'

这样我就可以直接在后一种方法中直接使用用户名,密码和电子邮件。我知道我可以使用字典,但为了兼容性,我需要这样做。

同样,我需要做的是将每个字典键变成一个单独的属性,该属性将获取其相应字典值的值。

更新 为了进一步支持我需要做的事情,这是我到目前为止所做的:

    for key, value in myDic.iteritems():
        exec("%s = " "'""%s""'" % (key, value))

2 个答案:

答案 0 :(得分:2)

如果你真的需要这样做:

>>> d = {}
>>> d['test'] = "foo"
>>> locals().update(d)
>>> test
'foo'

但如果我是你,我会尝试找到一种不同的方法来解决您尝试解决的问题,而不是自动将变量添加到本地命名空间。几乎总是可以解决这个烂摊子的问题。

答案 1 :(得分:1)

您将使用attribute = value

str.join格式获取字符串
In [12]: ", ".join(["%s = %s" % (k, v) for k,v in myDic.items()])
Out[12]: 'username = smith44, password = 123, email = smith@gmail.com'

In [13]: myDic.items()
Out[13]: [('username', 'smith44'), ('password', '123'), ('email', 'smith@gmail.com')]