我写了一个模块,它用作配置文件:
users = list(
dict(
username="x",
password="y"
)
)
但是,当我检查列表的导入内容时,它包含字典的键,而不是字典条目:
>>> import user as userdata
import user as userdata
>>> userdata.users
userdata.users
['username', 'password']
>>>
答案 0 :(得分:4)
你没有制作一个dicts列表,你正在从字典中创建一个字典键列表,list(dict(...))
返回一个键列表:
>>> d = dict(username="x", password="y")
>>> list(d)
['username', 'password']
您可能希望以这种方式定义users
:
users = [dict(username="x", password="y")]
或
users = [{'username': 'x', 'password': 'y'}]
答案 1 :(得分:1)
这是因为当您在字典上调用list
时,它会创建一个仅包含您的键的新列表,这与使用yourdictionary.keys()
的方法调用相同。
答案 2 :(得分:1)
您正在从字典中创建列表。列表构造函数将迭代dict,它只给出了键。
如果您想要一个包含dict的列表作为一个元素,您可以使用:
[dict(username='test')]
答案 3 :(得分:0)
尝试:
users = [dict(username="x",password="y")]
print users
如果你想拥有一系列词典。
答案 4 :(得分:0)
我无法理解当您只使用dict( )
时,为什么会使用{ }
。
你知道字典的功能吗?如果不是,我建议您尝试dir()
功能。
您可以使用一些功能:
dictionary。keys()
,返回字典中所有键的列表。
dictionary。values()
,返回字典中所有值的列表。
字典。items()
,返回一个列表,在每个单元格中有2个变量',[0] = key,[1] = value
示例:
d = { "First":1, "Second":2 }
d.keys()
>> [ "First", "Second" ]
d.values()
>> [ 1, 2 ]
d.items()
>> [ ("First", 1), ("Second", 2) ]