Python写入文件时如何为字典字符串值保留单引号
解决Python写入文件时自定义格式(保留date值单引号)
你直接把字典转成字符串写入文件,得到的格式不符合需求——你需要date的值带单引号,而键不需要加引号。但str(my_dict)会生成标准的Python字典字符串(键和字符串值都带单引号),所以得换个方式生成目标格式。
方案1:手动拼接目标字符串(推荐)
这种方法灵活,不管字典后续怎么调整,都能正确生成你要的格式:
my_dict = { 'date': '2018-11-28', 'weight': 172.91, 'height': 177.65, 'id':310 } # 遍历键值对,区分字符串和数字值处理 formatted_parts = [] for key, val in my_dict.items(): if isinstance(val, str): # 字符串值加单引号 formatted_parts.append(f"{key}: '{val}'") else: # 数字值直接输出 formatted_parts.append(f"{key}: {val}") # 拼接成最终的格式字符串 final_content = "{ " + ", ".join(formatted_parts) + " }" # 写入文件(用with语句自动关闭文件,更安全) with open('file.txt', 'w') as f: f.write(final_content)
运行后,文件里的内容就是你想要的:
{ date: '2018-11-28', weight: 172.91, height: 177.65, id: 310 }
方案2:字符串替换(适合固定结构的场景)
如果你的字典结构不会变,也可以用字符串替换快速解决:
my_dict = { 'date': '2018-11-28', 'weight': 172.91, 'height': 177.65, 'id':310 } # 先转成字符串,再替换掉键的引号,同时给date值加上单引号 content = str(my_dict).replace("'", "").replace("date: ", "date: '").replace(", weight", "', weight") with open('file.txt', 'w') as f: f.write(content)
不过这种方法局限性大,一旦字典的键或顺序变了,就得修改替换规则,所以优先选方案1。
内容的提问来源于stack exchange,提问作者Abdullah .F
相关产品推荐
相关产品推荐

