如何将DataFrame转为无多余括号的JSON Lines?解决列名格式问题
解决DataFrame转JSON Lines时列名变为元组格式的问题
你遇到的问题是用df.to_json(orient='records', lines=True)转换DataFrame后,JSON里的列名变成了"('description',)"这种元组格式,而不是正常的字符串列名。
问题原因
这大概率是因为你的DataFrame列名本身就是元组类型,可能是之前做多重索引、分组合并之类的操作时,不小心把列名封装成了单元素元组,转JSON时就直接把元组当成了键名输出。
解决步骤
- 先把列名从元组转成普通字符串:
# 遍历所有列名,提取元组里的唯一元素作为新列名 df.columns = [col[0] for col in df.columns]
如果列名都是类似('description',)的单元素元组,这行代码就能直接把它们转成description这种正常字符串。
- 再执行转JSON的操作:
df.to_json(orient='records', lines=True)
效果对比
- 转换前的错误输出:
{"('description',)":"backup account","('name',)":"SuchitaHedau","('screen_name',)":"oxytocin","('lang',)":"en"}
- 转换后的正确输出:
{"description":"backup account","name":"SuchitaHedau","screen_name":"oxytocin","lang":"en"}
内容的提问来源于stack exchange,提问作者user17424407
相关产品推荐
相关产品推荐

