Python搜索特定条目

时间:2017-03-01 22:26:04

标签: python json

所以我有代码;

names= [index + " - " + js[index]["name"] for index in js]

要搜索此数据:

{ "1": {"name":"One"} },
{ "2": {"name":"Two"} },
{ "3": {"name":"Three"} },

如何更改它以便我可以在程序中将变量设置为2并使代码仅搜索名称2?

1 个答案:

答案 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'