python - 使用python 3将Json嵌套到csv
问题描述
我正在尝试将 JSON 数据转换为 Python 中的 CSV,并在不久前在 Stack Exchange 上找到了这段代码(链接:如何将 JSON 转换为 CSV?)。它不再适用于 Python 3,给我带来不同的错误。有人知道如何修复 Python 3 吗?谢谢。
以下是我的 JSON 数据:
{ "fruit": [
{ "name": "Apple",
"binomial name": "Malus domestica",
"major_producers": [ "China", "United States", "Turkey" ],
"nutrition":
{ "carbohydrates": "13.81g",
"fat": "0.17g",
"protein": "0.26g"
}
},
{ "name": "Orange",
"binomial name": "Citrus x sinensis",
"major_producers": [ "Brazil", "United States", "India" ],
"nutrition":
{ "carbohydrates": "11.75g",
"fat": "0.12g",
"protein": "0.94g"
}
},
{ "name": "Mango",
"binomial name": "Mangifera indica",
"major_producers": [ "India", "China", "Thailand" ],
"nutrition":
{ "carbohydrates": "15g",
"fat": "0.38g",
"protein": "0.82g"
}
}
] }
输出 CSV 应如下所示
解决方案
最简单的方法是将所需的 dict 放入 pandas 数据框并使用其.to_csv()
方法:
json_data = { "fruit": [ { "name": "Apple", "binomial name": "Malus domestica", "major_producers": [ "China", "United States", "Turkey" ], "nutrition": { "carbohydrates": "13.81g", "fat": "0.17g", "protein": "0.26g" } }, { "name": "Orange", "binomial name": "Citrus x sinensis", "major_producers": [ "Brazil", "United States", "India" ], "nutrition": { "carbohydrates": "11.75g", "fat": "0.12g", "protein": "0.94g" } }, { "name": "Mango", "binomial name": "Mangifera indica", "major_producers": [ "India", "China", "Thailand" ], "nutrition": { "carbohydrates": "15g", "fat": "0.38g", "protein": "0.82g" } } ] }
df = pd.DataFrame(json_data['fruit'])
df.to_csv('/wherever/file/shall/roam/test.csv')
这会导致一个 csv 文件,如
推荐阅读
- java - 如何通过apache poi在word中设置表格行的高度不同的每一列
- xml - XSL-FO 在表格单元格内包装长文本
- c - 错误 C2088:“+=”:在 Visual Studio 上使用 c 的联合是非法的
- reactjs - 使用 useHistory、useLocation 挂钩的挂钩调用无效
- file - Webpack html 输出位置
- ssl - 如何使用 JavaFX 14/HTTP2/JDK-8211308 让 JavaFX WebView 继续加载带有自签名证书的页面
- python - scipy.stats.wasserstein_distance 实现
- javascript - 无法使用 python 在 selenium webdriver 中返回 javascript 确认值
- javascript - 显示错误消息并从组件重定向
- python - 分类 - 获取准确的标签值以检查与另一个类的接近程度(Python)