(if exists) get an element from a structured JSON with Python 3.6
在这个答案中,我理解我可以使用get指令捕获JSON文件的一个元素,如果该元素不存在,则可以获取
让我们看看下面的示例:
1 2 3 | import json json_input = '{"persons": [{"name":"Brian","city":"Seattle"}, {"name":"David","city":"Amsterdam"} ] }' d = json.loads(json_input) |
- 输入
d.get('persons') 输出
[{'name': 'Brian', 'city': 'Seattle'}, {'name': 'David',
'city':'Amsterdam'}]
- 输入
d.get('animals') 输出
None
但我想用它来检查
Traceback (most recent call last): File"", line 1, in
d.get(['persons'][0]['name']) TypeError: string indices must be integers
正确的方法是:
如果可能的话,字典上应用的
如果没有列表或没有
这看起来是一个有效的解决方案:
1 2 3 4 5 6 7 | def myGet(d, k1, k2, k3): try: return d[k1][k2][k3] except (TypeError, IndexError, KeyError): return None asdfg = myGet(d, 'persons', 0, 'name') |
您得到了typeerror,因为python将