惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
The Cloudflare Blog
IT之家
IT之家
V
V2EX
雷峰网
雷峰网
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
小众软件
小众软件
博客园 - 叶小钗
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
A
About on SuperTechFans
B
Blog
月光博客
月光博客
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI

博客园 - androllen

Python yield 关键词 PDF 构成 桌面客户端的主要类型和技术方案 异步删除嵌套文件夹及文件 数据结构 二叉树遍历 数据结构 线性表 JS 字符串转换为函数体 VSCode 配置内部Python项目 缺少模块ModuleNotFoundError C# 基础知识 算法-数列 算法-排序算法 C# 设计模式-简单工厂模式 C# 设计模式 C# Utils .Net 异步与同步 WPF StreamGeometry Vue 打开窗口输出文件路径 CSS Flexbox layout 2 CSS Flexbox layout 1
Python 压缩转义
androllen · 2025-08-14 · via 博客园 - androllen
import json

data = [{
    "key": "1.0.1",
    "token": "zlsj",
    "appid": 20386
}, {
    "key": "1.0.2",
    "token": "zlj",
    "appid": 20321
}]


if isinstance(data, str):
    pass
elif isinstance(data, list):
    _iterable = enumerate(data)
    group = []
    for key, value in _iterable:
        # 将 value 转为 JSON 字符串
        json_string = json.dumps(value, separators=(",", ":"), ensure_ascii=False, indent=None)

        # 如果你要的是“带转义引号”的字符串(比如用于拼接 JSON),再加一层引号并转义
        # 即:变成 '"{...}"' 形式(字符串,包含外层引号和内部转义)
        escaped_json_string = json.dumps(json_string, separators=(",", ":"), ensure_ascii=False, indent=None)
        print(f"Key: {key}")
        print(f"Value: {escaped_json_string}")
        print("-" * 50)
        group.append(escaped_json_string.strip("\""))

    mergeData = ",".join(group)
    print(f"list merge: \"[{mergeData}]\"")

    json_string = json.dumps(data, separators=(",", ":"), ensure_ascii=False, indent=None)
    escaped_json_string = json.dumps(json_string, separators=(",", ":"), ensure_ascii=False, indent=None)
    print(f"list merge: {escaped_json_string}")


elif isinstance(data, dict):
    json_string = json.dumps(data, separators=(",", ":"), ensure_ascii=False, indent=None)
    escaped_json_string = json.dumps(json_string, separators=(",", ":"), ensure_ascii=False, indent=None)
    print(f"dict merge: {escaped_json_string}")

    # 遍历第一层 key
    for key, value in data.items():
        # 将 value 转为 JSON 字符串
        json_string = json.dumps(value, separators=(",", ":"), ensure_ascii=False, indent=None)

        # 如果你要的是“带转义引号”的字符串(比如用于拼接 JSON),再加一层引号并转义
        # 即:变成 '"{...}"' 形式(字符串,包含外层引号和内部转义)
        escaped_json_string = json.dumps(json_string, separators=(",", ":"), ensure_ascii=False, indent=None)
        print(f"Key: {key}")
        print(f"Value: {escaped_json_string}")
        print("-" * 50)
    # 处理字符串
elif isinstance(data, bool):
    # 处理 True / False
    if data:
        pass
        # 成功
    else:
        pass
        # 失败
else:
    pass

输出:

Key: item
Value: "{\"name\":\"Alice\",\"age\":30,\"item\":{\"key\":\"1.0.1\",\"token\":\"zlsj\",\"appid\":20386}}"
--------------------------------------------------

测试数据

# 数组
data = [{
    "key": "1.0.1",
    "token": "zlsj",
    "appid": 20386
}, {
    "key": "1.0.2",
    "token": "zlj",
    "appid": 20321
}]

输出结果:

Key: 0
Value: "{\"key\":\"1.0.1\",\"token\":\"zlsj\",\"appid\":20386}"
--------------------------------------------------
Key: 1
Value: "{\"key\":\"1.0.2\",\"token\":\"zlj\",\"appid\":20321}"
--------------------------------------------------
[{\"key\":\"1.0.1\",\"token\":\"zlsj\",\"appid\":20386},{\"key\":\"1.0.2\",\"token\":\"zlj\",\"appid\":20321}]