0

解析包含人名和年龄的 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然后解析值的方法是否正确?或者是否有更好的方法 - 可能是使用正则表达式或其他东西?

请指教。

4

1 回答 1

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())

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

于 2012-04-30T04:33:13.427 回答