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

Python新手:移除JSON集合撇号及构建JSON集合技术求助

嘿,作为Python新手能搞定json.dumps生成JSON已经超棒啦!我来帮你一步步实现收集JSON到集合,以及处理撇号的需求:

1. 收集多个JSON到集合里

首先,你需要初始化一个空集合,然后每次生成JSON字符串后把它加进去就行。如果需要自动去重,用集合刚好合适;要是不需要去重,换成列表会更灵活,我两种方案都给你列出来:

用集合(自动去重)

import json

# 初始化空集合
json_collection = set()

# 假设你通过循环生成不同的row字典(这里替换成你实际生成row的逻辑,比如从数据文件/数据库读取)
for row in your_row_generator():
    json_row = json.dumps(row)
    json_collection.add(json_row)

用列表(保留所有生成的JSON,不去重)

如果不需要去重,更推荐用列表,因为集合的去重特性可能会误删你需要保留的内容:

json_list = []
for row in your_row_generator():
    json_row = json.dumps(row)
    json_list.append(json_row)

2. 移除撇号的处理

你提到要移除JSON集合中的撇号,分两种常见情况处理:

情况A:集合打印时看到的外层单引号

当你打印集合的时候,Python会用单引号包裹每个字符串元素(比如{'{"abc": "SDT"}'}),但这不是字符串的实际内容,只是Python的默认显示格式。如果要输出干净的JSON内容,直接遍历集合打印每个元素就行:

for json_str in json_collection:
    print(json_str)
# 输出就是没有外层单引号的合法JSON:{"abc": "SDT", "RIC": "SFOpmM5"...}

情况B:JSON内容里的撇号(比如字段值包含')

如果你的原始row字典里有带撇号的值(比如desc: "FUEL OIL 'JUN15'"),想把这些撇号去掉,可以在生成JSON前先清理字典里的字符串值:

# 遍历row的每个键值对,移除字符串值里的撇号
clean_row = {}
for key, value in row.items():
    if isinstance(value, str):
        clean_row[key] = value.replace("'", "")
    else:
        clean_row[key] = value  # 非字符串类型保持原样

# 再生成JSON
json_row = json.dumps(clean_row)
json_collection.add(json_row)

或者用更简洁的字典推导式写法:

clean_row = {k: v.replace("'", "") if isinstance(v, str) else v for k, v in row.items()}
json_row = json.dumps(clean_row)

这样就能完美实现你的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:06:34