Python:更新嵌套字典中的值

12 浏览
0 Comments

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日
0
0 Comments

使用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'}}}}}

0
0 Comments
multi_match = query['query']['function_score']['query']['multi_match']
multi_match['operator'] = 'or'
multi_match.update({'minimum_should_match' : '80%' })

:这是一个包含粗体字“123”的html段落。

0