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
相关产品推荐
相关产品推荐

