Python元组最后一行特殊处理:手动构造JSON去除末尾逗号
解决手动构造JSON时最后一个元素逗号问题的Python风格方案
你的代码核心问题是判断条件错误——row是从data中取出的元组对象,而len(data)是整数,两者永远不可能相等,所以所有循环分支都会执行else,给每个元素都加上逗号。
推荐方案:使用Python内置json模块(最安全、最Pythonic)
手动拼接JSON极易出现格式错误(比如字符串含特殊字符、引号不匹配),Python内置的json模块会自动处理所有语法细节,包括元素间的逗号逻辑。
示例代码:
import json # 将查询结果转换为JSON格式的字典列表 json_list = [{"PUT": row[1]} for row in data] # 直接写入文件,自动处理格式 with open("output.json", "w", encoding="utf-8") as f: json.dump(json_list, f, indent=2) # indent参数用于格式化输出,可选
手动拼接的修正方案(仅特殊场景下使用)
如果必须手动拼接,可通过enumerate获取元素索引,判断是否为最后一个元素:
示例代码:
with open("output.json", "w", encoding="utf-8") as f: f.write("[\n") # 先写入JSON数组的开头 for index, row in enumerate(data): # 写入单个对象 f.write(f' {{"PUT": "{row[1]}"}}') # 仅当不是最后一个元素时添加逗号 if index != len(data) - 1: f.write(",") f.write("\n") f.write("]\n") # 写入JSON数组的结尾
注意:手动拼接时需确保row[1]的内容不会破坏JSON格式(比如不含未转义的双引号、换行符等),否则会生成无效JSON。
内容的提问来源于stack exchange,提问作者Ben Jones
相关产品推荐
相关产品推荐

