JSON 对象必须是 str、bytes 或 bytearray,而不是 dict

新手上路,请多包涵

在 Python 3 中,要加载以前保存的 json,如下所示:

json.dumps(dictionary)

输出类似于

{"('Hello',)": 6, "('Hi',)": 5}

当我使用

json.loads({"('Hello',)": 6, "('Hi',)": 5})

它不起作用,会发生这种情况:

 TypeError: the JSON object must be str, bytes or bytearray, not 'dict'

原文由 dila93 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.8k
1 个回答

json.loads 以字符串作为输入并返回字典作为输出。

json.dumps 将字典作为输入并返回一个字符串作为输出。


随着 json.loads({"('Hello',)": 6, "('Hi',)": 5})

您正在调用 json.loads 并使用字典作为输入。

您可以按如下方式修复它(尽管我不太确定那有什么意义):

 d1 = {"('Hello',)": 6, "('Hi',)": 5}
s1 = json.dumps(d1)
d2 = json.loads(s1)

原文由 barak manos 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏