所以我有代码;
names= [index + " - " + js[index]["name"] for index in js]
要搜索此数据:
{ "1": {"name":"One"} },
{ "2": {"name":"Two"} },
{ "3": {"name":"Three"} },
如何更改它以便我可以在程序中将变量设置为2并使代码仅搜索名称2?
答案 0 :(得分:0)
假设js是有效的词典:
js = { "1": {"name":"One"},
"2": {"name":"Two"},
"3": {"name":"Three"}}
您正在构建一个包含" name"的所有值的列表。如果你只想要那些索引,那么" name"等于"两个",将它包含在你的列表理解中:
>>> needle = "Two"
>>> names = ["{} - {}".format(index, js[index]["name"]) for index in js if js[index]["name"]==needle]
>>> print(names)
['2 - Two']
编辑:关于您的评论,如果您尝试获取值"两个"对于键" 2",您可以通常的方式直接访问dict:
>>> needle="2"
>>> js[needle]["name"]
'Two'
在这个特定的简化案例中,使用平面字典会更容易:
js = { "1": "One",
"2": "Two",
"3": "Three"}
访问("搜索")将是:
>>> js[needle]
'Two'