python - 在密钥 ID 上链接 Json 数据以创建全新的 Json 文件
问题描述
我有一个包含站点和价格数组的 Json 文件,我希望将其链接起来,以便所有需要的数据都在一个数组中。
{
"stations": [
{
"code": "1",
"name": "United force"
},
{
"code": "2",
"name": "Toowoon Bay Service Station"
}
],
"prices": [
{
"stationcode": "1",
"fueltype": "DL",
"price": 126.97
},
{
"stationcode": "1",
"fueltype": "E10",
"price": 118.92
},
{
"stationcode": "2",
"fueltype": "E10",
"price": 112.90
},
{
"stationcode": "2",
"fueltype": "P95",
"price": 125.90
},
{
"stationcode": "2",
"fueltype": "P98",
"price": 155.90
},
{
"stationcode": "2",
"fueltype": "U91",
"price": 115.20
}
]
}
新 Json 创建 Json 的预期结果将是
{
"stations": [
{
"code": "1",
"name": "United force",
"DL": 126.97,
"E10": 118.92
},
{
"code": "2",
"name": "Toowoon Bay Service Station",
"E10": 112.90,
"P95": 125.90,
"P98": 155.90,
"U91": 115.20
}
]
}
我想做这个不在客户端的转换,比如我可以运行的 powershell 或 python 或 dart,所以我有新生成的文件(或计划),生成的文件将用作源在我的应用程序(颤振)中。因为如果在客户端即时进行转换将是昂贵/耗时的。
谢谢你。
解决方案
这将以 powershell 方式转换 json:
$data = @"
{
"stations": [
{
"code": "1",
"name": "United force"
},
{
"code": "2",
"name": "Toowoon Bay Service Station"
}
],
"prices": [
{
"stationcode": "1",
"fueltype": "DL",
"price": 126.97
},
{
"stationcode": "1",
"fueltype": "E10",
"price": 118.92
},
{
"stationcode": "2",
"fueltype": "E10",
"price": 112.90
},
{
"stationcode": "2",
"fueltype": "P95",
"price": 125.90
},
{
"stationcode": "2",
"fueltype": "P98",
"price": 155.90
},
{
"stationcode": "2",
"fueltype": "U91",
"price": 115.20
}
]
}
"@ | ConvertFrom-Json
foreach ($price in $data.prices) {
$data.stations |
Where-Object { $_.code -eq $price.stationcode } |
Add-Member -MemberType NoteProperty -Name $price.fueltype -Value $price.price
}
$data | Select-Object -Property stations | ConvertTo-Json
推荐阅读
- amazon-web-services - 每个环境的 AWS VPC,还是针对不同环境具有多个子网的单个 VPC?
- vb.net - 如何在 Vb.net 中保留 ListBox 的内容
- c# - Resharper 丢失并且找不到我的 MSTestV2 单元测试
- javascript - 无法读取登录页面上未定义的属性“推送”
- python - 做了一个函数,但它忽略了我可选的 True/False 语句
- php - Laravel 错误“目标类 [App\Http\Controllers\ResetPasswordController] 不存在。”
- r - 如何在R中拆分列表?
- spring - 将 Spring Boot 2.2.9.RELEASE 升级到 2.3.2.RELEASE 后,服务不起作用
- python - 如何让一个函数输入另一个函数的输入
- python-3.x - ImportError:没有名为 influxdb 的模块。无法导入所需的 Python 库 (influxdb)