gpt4 book ai didi

python - 如何在不在 python 中加载完整的 json 的情况下更新 json 文件中键的值?

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:59 25 4
gpt4 key购买 nike

考虑一下,更新前json文件的内容是,

{"key1": "value A", "key2": "value B"}

我想在不使用 json.load() 实际打开 json 文件的情况下将 key1 更新为值 C。所以最终的输出应该是,

{"key1": "value C", "key2": "value B"}

我想要 mongoDB 中的 update() 之类的东西。是否可以通过任何图书馆?

最佳答案

这完全取决于任务的上下文。正如我在评论中所说,您可以使用 SAX 解析器而不是 DOM。它会阻止你在内存中构建巨大的模型。 SAX 解析器在事件(回调)驱动机制上工作。

另一种选择,如果您的 JSON 结构如所示的那样简单并且预计不会改变,您可以使用简单的正则表达式。下面的示例展示了这个想法,但要小心,它假设您的值始终采用 [\w\d\s]* 形式并且不包含引号和逗号。

import re

rx = r'\s*\"(\w\d+)\"\s*:\s*"([\w\d\s]*)"\s*'

with open('in.json') as inp:
src_text = inp.read().strip(' \t\r\n{}')
output = []
for pair in src_text.split(','):
m = re.match(rx, pair)
key = m.group(1)
val = m.group(2)
output.append('"{}": "{}"'.format(key, 'value C' if key == 'key1' else val))
with open('out.json', 'w') as outp:
outp.write('{' + ', '.join(output) + '}')

关于python - 如何在不在 python 中加载完整的 json 的情况下更新 json 文件中键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53495772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com