gpt4 book ai didi

json - 如何使用 PYTHON 以字典类型而不是字符串类型获取 JSON.loads() 输出

转载 作者:行者123 更新时间:2023-12-01 04:42:55 25 4
gpt4 key购买 nike

当我利用时JSON.dump() 我低于 JSON 格式

Dumps data"b'{\"AutomaticReadabilityIndex\":2.7999999999999994,\"AgeLevel\":[\" 11 to 12\"],\"Statement\":[\"Nice. Your grade is about six\"],\"SpacheScore\":1.877,\"GunningFogScore\":9.099999999999998,\"SmogIndex\":5.999999999999999}'"

当我利用 时JSON.loads() 我的字节数低于 JSON 格式
loads data b'{"AutomaticReadabilityIndex":2.7999999999999994,"AgeLevel":[" 11 to 12"],"Statement":["Nice. Your grade is about six"],"SpacheScore":1.877,"GunningFogScore":9.099999999999998,"SmogIndex":5.999999999999999}'

我的问题是当我使用负载格式时,输出必须在 字典输入但我不知道为什么我收到 字符串 输入作为我的输出。如何将此 JSON 字符串转换为字典类型。
Loads Data Type : type of loads <class 'str'>

当我尝试直接解析字符串类型 JSON 时,出现以下错误
ERROR : Traceback (most recent call last):
File "Db.py", line 84, in <module>
print(par['GunningFogScore'])
TypeError: string indices must be integers

最佳答案

我可以简单地重现您的问题:

import json

s = {"AutomaticReadabilityIndex":2.7999999999999994,"AgeLevel":[" 11 to 12"],"Statement":["Nice. Your grade is about six"],"SpacheScore":1.877,"GunningFogScore":9.099999999999998,"SmogIndex":5.999999999999999}

print(json.dumps(json.dumps(s)))

结果:
"{\"SmogIndex\": 5.999999999999999, \"AutomaticReadabilityIndex\": 2.7999999999999994, \"SpacheScore\": 1.877, \"GunningFogScore\": 9.099999999999998, \"AgeLevel\": [\" 11 to 12\"], \"Statement\": [\"Nice. Your grade is about six\"]}"

所以要么:
  • 你正在链接两个转储。第一次转储将字典转换为字符串,但转储字符串也是有效的,因此字符串被转储、引号、转义等...
  • 您正在转储一个看起来像字典的字符串( "{12:1,14:2}" )。

  • (如果您不确定类型,请在执行转储之前检查 type(s))

    所以当你重新加载时
    par = json.loads(s)

    你得到的是一个字符串,而不是一个字典,它解释了使用 [] 时的错误信息(因为您试图将键传递给字符串)

    解决方法:

    使用 json.loads(json.loads(s))恢复您的数据。

    作为更好的解决方法,只需使用 dumps一旦在序列化过程中。

    关于json - 如何使用 PYTHON 以字典类型而不是字符串类型获取 JSON.loads() 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44560945/

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