python - 用 Python 解析这个 JSON 文件中的特定值?
问题描述
我是 Python 新手,我需要一些帮助来解析这个特定值并将其从 JSON 文件插入到 CSV 文件中。
这是我的 JSON 文件的片段
{
"data": [
{
"id": 5555,
"name": "Dodge RAM",
"pump": {
"50400": {
"device_id": 50400,
"type": "Diesel Car"
}
}
}
]
}
我想得到这样的 CSV 输出
id | name | device_id
5555 | Dodge RAM | 50400
这是我的 Python 代码:
all_rows = response.json()
filename = "output.csv"
with open(filename, "w") as file:
csv_file = csv.writer(file, lineterminator='\n')
csv_file.writerow(["id", "name", "device_id"])
for item in all_rows["data"]:
csv_file.writerow([item['id'], item['name'], item['pump']['device_id'])
我的代码打印了泵中的所有值"50400": {"device_id": 50400, "type": "Diesel Car"}
我只想要 device_id,我不知道如何跳过泵中的“50400”来获取 device_id。50400 不是一个常数值,它会随着 device_id 的变化而变化。
任何帮助表示赞赏!谢谢!
解决方案
查看字典项并选择其键等于“device_id”的项:
[
[vals['device_id'] for dev_id,vals in item["pump"].items()
if vals['device_id']==int(dev_id)]
for item in all_rows["data"]
]
#[[50400]]
推荐阅读
- angular - Webpack 已使用与 API 模式未知属性“优化”不匹配的配置对象进行初始化
- android - 警报管理器无法在android中的确切时间启动
- python - 使用 crontab 在启动时运行 http.server
- unity3d - 我想在单击按钮时禁用 DetectedPlanes 的 MeshRenderer。我正在使用 ARCore 示例项目
- css - 表行(:after)中的绝对定位元素不滚动
- r - 查找多个数据集共有的列
- javascript - 如何检查 Node.js 中的 Async-await 是否发生错误?
- android - Android 动态模块仅在 arm 处理器上
- haskell - 了解作家类型
- javascript - 如何将对象数组拆分为块