Python:更新嵌套字典中的值
Python:更新嵌套字典中的值
我正在导入和操作一些深度嵌套的JSON(导入为字典)。使用类似于下面的代码可以很好地分配值:
query['query']['function_score']['query']['multi_match']['operator'] = 'or' query['query']['function_score']['query']['multi_match'].update({ 'minimum_should_match' : '80%' })
但是这样做又丑又繁琐。我想知道是否有一种更清晰的方法来分配深度嵌套键的值,而且效率还要合理?
我已经阅读过可能使用内存SQLlite数据库的文章,但经过一些操作后,数据将重新回到json。
admin 更改状态以发布 2023年5月22日
使用JSONPath(通过 'jsonpath_rw')使其更简便:
之前:
>>> query {u'query': {u'function_score': {u'query': {u'multi_match': {u'min_should_match': u'20%'}}}}}
更新:
>>> found = jsonpath_rw.parse("$..multi_match").find(query)[0] >>> found.value["operator"] == "or" >>> found.value["min_should_match"] = "80%"`
之后:
>>> query {u'query': {u'function_score': {u'query': {u'multi_match': {'min_should_match': '80%', u'operator': u'or'}}}}}