gpt4 book ai didi

python - 在 Python 中编辑现有的 JSON

转载 作者:行者123 更新时间:2023-11-28 20:53:23 24 4
gpt4 key购买 nike

我正在以给定的格式从服务器中提取一些 JSON:

{"images": [{"rating": 5.0, "thumburl": "http://something.jpg", "description": "dfgd", "submitdate": "2011-01-29T07:54:02", "submituser": "J", "imagekey": "a"}, ...]}

我必须使用“imagekey”向每个元素添加一个新元素“viewurl”。例如,结果将是

{"images": [{"rating": 5.0, "thumburl": "http://something.jpg", "description": "dfgd", "submitdate": "2011-01-29T07:54:02", "submituser": "J", "imagekey": "a", "viewurl": "/view?imagekey=a"}, ...]}

可能有一种简单的方法可以做到这一点,但除了转储和加载之外,我在 simplejson 上找不到很多东西。

最佳答案

这就是你想要做的吗?

data = simplejson.loads(yourString)
for image in data['images']:
image['viewurl'] = '/view?imagekey=%s' %(image['imagekey'])

您也可以使用object_hook。这适用于您的示例,但您可能希望根据您的实际数据对其进行一些调整:

>>> def addImageKey(dataPart):
... if dataPart.has_key('imagekey'):
... dataPart['viewurl'] = '/view?imagekey=%s' %dataPart['imagekey']
... return dataPart
...
>>> decoded_with_viewurl = json.loads(myString, object_hook = addImageKey)

我提到可能需要对其进行调整的原因是因为在其当前形式中,addImageKey object_hook 会将 viewurl 键/值添加到 JSON 结构中包含 imagekey 键已经。因此,如果需要,您可能必须对 images 中的项目使用更具体的内容。

哦,如果你想将它编码回 JSON 字符串,你可以将最后一行更改为

>>> reencoded_with_viewurl = json.dumps(json.loads(myString, object_hook = addImageKey))

根据您正在解码/编码的数据量,我建议使用 cjson 重新编码数据的可能性。与 simplejson/json 相比,它快如闪电。不幸的是,它不支持 object_hook 之类的东西。

关于python - 在 Python 中编辑现有的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4859071/

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