Я пытаюсь использовать jq, чтобы преобразовать что-то вроде этого:
[
{
"type": "Feature",
"properties": {
"osm_id": "172544",
"highway": "crossing",
"other_tags": "\"crossing\"=>\"uncontrolled\",\"tactile_paving\"=>\"yes\""
},
"geometry": {
"type": "Point",
"coordinates": [
13.3432342,
52.5666157
]
}
}
]
в это:
[
{
"type": "Feature",
"properties": {
"osm_id": "172544",
"highway": "crossing",
"other_tags": {
"crossing": "uncontrolled",
"tactile_paving": "yes"
}
},
"geometry": {
"type": "Point",
"coordinates": [
13.3432342,
52.5666157
]
}
}
]
прямо сейчас, это мой прогресс:
jq 'map(try(.properties.other_tags |= split(",") // .)) | map(try(.properties.other_tags[] |= split("=>") // .)) | map(try(.properties.other_tags[] |= { (.[0]) : .[1] } // .))' example.json
но вывод «other_tags» выглядит следующим образом:
"other_tags": [
{
"\"crossing\"": "\"uncontrolled\""
},
{
"\"tactile_paving\"": "\"yes\""
}
]
Я почти уверен, что это не так эффективно, как могло бы быть.
Он используется для преобразования экспорта osm,которые довольно велики
Есть ли более элегантная / короткая инструкция jq, которую я могу использовать, также дающая желаемый результат, как указано выше?