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

如何在Python数组中替换单引号为双引号且不改动JSON值内的单引号

解决Python对象转JSON时单引号替换问题

别用手动字符串替换的方式折腾,直接用Python内置的json模块序列化你的managable数组,这是最稳妥的方案,能自动处理所有JSON格式要求,包括布尔值、空值的转换,还能精准区分键的引号和值内的单引号。

修改后的代码

import requests
import json

# 获取 guilds 数据
r = requests.get("https://discord.com/api/v8/users/@me/guilds", headers = {
    "Authorization": f"Bearer {access_token}"
})

guilds = r.json()
managable = []

for guild in guilds:
    if int(guild["permissions"]) & 32 != 0:
        managable.append(guild)

# 直接生成标准JSON字符串
strmanagable = json.dumps(managable)

效果说明

  • json.dumps()会自动把Python的True转成JSON的true,False转成false,None转成null,完全不需要手动替换。
  • 所有JSON键会自动使用双引号,值内的单引号会被自动转义(比如'something'会变成"\'something\'"),这是标准JSON允许的格式,后续解析时会正确还原原始的单引号内容。

为什么手动替换不可行

你之前用str(managable)把Python列表转成字符串,本质是生成Python语法的字符串表示,而非标准JSON格式。直接替换单引号无法区分键的引号和值内的引号,必然会破坏值里的内容。而json模块是专门为Python对象与JSON格式转换设计的,能处理嵌套结构、特殊字符等所有边缘情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:36:17