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

pd.read_json中单双引号的差异及字符串不等问题咨询

问题:单双引号互换的JSON字符串为何在pd.read_json中表现不同?

我定义了两个字符串:

d1 = "[{'col 1':'a','col 2':'b'}]"

d2 = '[{"col 1":"a","col 2":"b"}]'

二者仅单双引号使用位置互换,数据内容看似一致,但使用pd.read_json处理时结果完全不同:处理d1会抛出ValueError,处理d2则能正常生成DataFrame。测试发现二者类型均为str,但d1与d2不相等,请问这是为什么?


解答

  • JSON语法的硬性要求:标准JSON规范强制要求字符串(包括对象的键)必须用双引号包裹,单引号不属于合法的JSON语法。pd.read_json依赖标准JSON解析逻辑,所以会拒绝解析用单引号的d1,而完全符合规范的d2能被正常处理。
  • 字符串本身的字符差异:d1和d2的实际字符序列并不相同——d1内部是单引号',d2内部是双引号",这两个是不同的字符,所以直接比较字符串时结果自然不相等。
  • Python字符串写法的迷惑性:你用双引号包裹整个字符串、内部放单引号,和用单引号包裹整个字符串、内部放双引号,这只是Python定义字符串的两种合法方式,但最终生成的字符串内容(存储的字符)是不一样的,这才是导致后续解析差异的核心原因。

内容的提问来源于stack exchange,提问作者Laurent B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:27:48