使用Pandas to_json()转换DataFrame时如何保留换行符\n?
解决pandas to_json()丢失换行符(\n)的问题
当使用pandas的to_json()方法将DataFrame转换为JSON格式时,字符串中的\n换行符可能会丢失,导致字段内容被空格替代(如示例中的businesshours字段)。以下是几种可行的解决方法:
方法一:调整to_json()参数
调用to_json()时,指定合适的格式参数并禁用转义优化,确保换行符被保留为JSON中的转义序列:
# 按索引输出格式化的JSON,保留\n json_result = df.to_json(orient='index', indent=2, escape_forward_slashes=False, ensure_ascii=False)
如果需要输出每行一个键值对的格式(匹配你提供的示例样式),可以使用:
# 每行输出一个键值对,保留\n json_result = df.to_json(orient='columns', lines=True, escape_forward_slashes=False, ensure_ascii=False)
方法二:手动替换换行符(兜底方案)
如果上述参数调整无效,可以先将DataFrame中目标字段的\n替换为转义后的\\n,再执行转换:
# 替换目标字段的换行符为转义序列 df['businesshours'] = df['businesshours'].str.replace('\n', '\\n') # 执行JSON转换 json_result = df.to_json(orient='columns', lines=True)
内容的提问来源于stack exchange,提问作者gwkim
相关产品推荐
相关产品推荐

