如何在Pandas to_json输出中移除含null值的字段?
解决方案:移除JSON输出中的null字段
嘿,要实现移除每个JSON对象里的null字段,咱们可以先对DataFrame的每行数据做过滤,再导出成JSON Lines格式,具体做法如下:
实现步骤
Pandas的to_json方法本身没有直接移除单个对象内null字段的参数,但我们可以先把每行数据转成字典,过滤掉值为null/NaN的键值对,再写入文件:
import pandas as pd import json # 假设xx是你的目标DataFrame # 1. 逐行过滤掉值为NaN/None的字段,生成过滤后的字典列表 filtered_rows = xx.apply( lambda row: {col: val for col, val in row.items() if pd.notna(val)}, axis=1 ).tolist() # 2. 写入JSON Lines格式的文件 with open('file_path', 'w', encoding='utf-8') as f: for item in filtered_rows: json.dump(item, f) f.write('\n')
代码说明
pd.notna(val):可以同时识别NaN和None,确保所有空值对应的字段都被过滤掉axis=1:告诉apply按行处理数据,逐行生成过滤后的字典- 最后用
json.dump逐行写入,保证输出是每行一个JSON对象的Lines格式,和你原来用orient='records', lines=True的输出格式一致,但去掉了空值字段
这样处理后,你就能得到期望的输出:
{"state":4.0,"t":1527237121263} {"t":1527237121264,"target_speed":400.0}
内容的提问来源于stack exchange,提问作者Keithx
相关产品推荐
相关产品推荐

