解析包含人名和年龄的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
然后解析值是否正确?还是有更好的方法 - 可能使用正则表达式或其他东西?
请告知。
答案 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())
(请注意,这两种结构并不总是等效的)