查找单词的一部分是否在python词典的值中

时间:2012-04-30 04:27:59

标签: python json

解析包含人名和年龄的json文件后,

{"People":
    [
        {  "name":"damon julian",
           "age":40
         }
    ]
}

data=json.load(file)
d1=data["People"][0]

我有一本这样的字典

d1={'name':'damon julian','age':40}

我想知道子字符串'damon'是否存在于dict中的一个值中。所以我试过

[(k, v) for (k, v) in d1.iteritems() if 'damon' in v]

然而,这会产生错误

TypeError: argument of type 'int' is not iterable

我通过将值转换为字符串

来解决这个问题
[(k, v) for (k, v) in d1.iteritems() if 'damon' in str(v)]

我想知道是否有更好的方法来执行此操作。我的方法是转换json data to dict然后解析值是否正确?还是有更好的方法 - 可能使用正则表达式或其他东西?

请告知。

1 个答案:

答案 0 :(得分:0)

any(('damon' in v) for v in yourDict.values() if isinstance(v,str))

any((isinstance(v,str) and 'damon' in v) for v in yourDict.values())

(请注意,这两种结构并不总是等效的)