You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中json.dumps生成的字符串为何与原字符串==比较结果不等

问题解答

两个值不相等和==比较符、变量类型无关,核心原因是json.dumps()的返回内容和你预期的不一致:

  • json.dumps()的作用是将Python对象转换为符合JSON格式规范的字符串。当传入Python原生字符串"hello"时,按照JSON标准,字符串类型的值必须用双引号包裹,所以最终赋值给hello变量的字符串内容是带首尾双引号的"hello",总长度为7,而非你以为的不带引号、长度为5的纯字符序列hello。

你可以运行下面的代码直接查看变量的真实内容:

import json
hello = json.dumps("hello")
# 用repr打印可以直观看到字符串的真实内容,不会自动转义外层引号
print(repr(hello))  # 输出结果为 '"hello"'
print(len(hello))   # 输出结果为7,对比原生"hello"的长度是5

你用来做相等判断的右侧值是原生字符串"hello",首尾没有额外的双引号,两个字符串的实际内容不一样,自然会返回不相等的结果。

如果要获取JSON字符串对应的原生Python值,需要用json.loads()做反序列化处理:

import json
hello = json.dumps("hello")
parsed_hello = json.loads(hello)
print(parsed_hello == "hello")  # 此时比较结果为True

内容的提问来源于stack exchange,提问作者committedandroider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:12:23