gpt4 book ai didi

python - 具有多个字典的 Json

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:51 24 4
gpt4 key购买 nike

我有以下数据:

d = "{\"key_1": \" val_1\", \"key_2\": \"val_2\"}{\"key_3\": \" val_3\", \"key_4\": \"val_4\"}"

我想将其翻译成字典列表,例如

d_list = [{\"key_1": \" val_1\", \"key_2\": \"val_2\"}, {\"key_3\": \" val_3\", \"key_4\": \"val_4\"}]
  1. json.loads(d) 给我错误类型:raise ValueError(errmsg("Extra data", s, end, len(s)))

有什么建议吗?

最佳答案

您可以使用 JSONDecoder及其 raw_decode() 方法来完成此操作。 raw_decode() 将读取一个完整的 JSON 对象,并返回一个元组,其第一个成员是该对象,第二个成员是解码器停止读取的字符串中的偏移量。

基本上,您需要读取一个对象,然后将其存储在一个数组中,然后从字符串中读取下一个对象,依此类推,直到到达字符串的末尾。像这样:

import json

def read_json_objects(data):
decoder = json.JSONDecoder()
offset = 0

while offset < len(data):
item = decoder.raw_decode(data[offset:])

yield item[0]
offset += item[1]

d = '{"key_1": " val_1", "key_2": "val_2"}{"key_3": " val_3", "key_4": "val_4"}'

print json.dumps(list(read_json_objects(d)))

这将输出:

[{"key_1": " val_1", "key_2": "val_2"}, {"key_4": "val_4", "key_3": " val_3"}]

关于python - 具有多个字典的 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765734/

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