【发布时间】:2012-04-30 04:27:58
【问题描述】:
解析一个包含人名和年龄的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然后解析值的方法是否正确?或者有更好的方法——可能是使用正则表达式或其他什么?
请指教。
【问题讨论】:
-
您是否真的需要查看字典的所有条目,还是
name值就足够了? -
我很困惑。您是要定位并返回包含您的姓名的字段,还是只返回 True(如果存在)?
-
条件匹配需要返回字段
-
这并不是真正的“转换”(Python 没有这种东西),而是“转换”。无论如何,如果您只需要检查名称字段,那么为什么不只检查名称字段?