多JSON文件转单CSV且各JSON内容单独占一列的Python实现问题
问题原因
你原有代码的pd.concat默认是按行拼接,会将两个JSON读取得到的结构相同的DataFrame上下堆叠,最终得到8行2列的结果,不符合你需要将两个JSON内容分别放在左右两列的需求。
解决代码
import pandas as pd import json # 读取第一个JSON文件,拉平Product、Price的值为第一列 with open('/home/mich/Documents/tryout1.json', 'r', encoding='utf-8') as f: data1 = json.load(f) col1 = list(data1["Product"].values()) + list(data1["Price"].values()) # 读取第二个JSON文件,拉平Product、Price的值为第二列 with open('/home/mich/Documents/tryout2.json', 'r', encoding='utf-8') as f: data2 = json.load(f) col2 = list(data2["Product"].values()) + list(data2["Price"].values()) # 构建最终DataFrame,列名可按需修改 res_df = pd.DataFrame({ "tryout1": col1, "tryout2": col2 }) # 导出CSV res_df.to_csv('/home/mich/Documents/tryout.csv', index=False) # 验证输出 print(pd.read_csv('/home/mich/Documents/tryout.csv'))
效果说明
运行后得到的CSV会完全匹配你的预期:
- 第一列(tryout1)依次为tryout1.json的4个Product值、4个Price值
- 第二列(tryout2)依次为tryout2.json对应的4个Product值、4个Price值
内容的提问来源于stack exchange,提问作者iamgroot
相关产品推荐
相关产品推荐

