Я пытаюсь создать объект JSON в PowerShell, поэтому я могу использовать его в скрипте python. У меня были смешанные результаты, я пытаюсь сжать это в одной команде, так что я могу просто запустить в моего питона сценарияPowerShell создать вложенный JSON
ForEach ($disk in (Get-Partition).DiskNumber | select -Unique | Sort-Object)`
{ConvertTo-Json @{$disk.ToString()=`
ForEach ($part in (Get-Partition -DiskNumber $disk).PartitionNumber | Sort-Object)`
{@{$disk.ToString()=Get-Partition -DiskNumber $disk -PartitionNumber $part | `
ForEach-Object {ConvertTo-Json @{PartitionNumber=$_.PartitionNumber;DriveLetter=$_.DriveLetter;Offset=$_.Offset`
}}}}}}
Это выход я получаю:
{
"0": [
{
"1": "{\r\n \"DriveLetter\": null,\r\n \"Offset\": 17408,\r\n \"PartitionNumber\": 1\r\n}"
},
{
"2": "{\r\n \"DriveLetter\": \"F\",\r\n \"Offset\": 135266304,\r\n \"PartitionNumber\": 2\r\n}"
}
]
}
{
"1": [
{
"1": "{\r\n \"DriveLetter\": null,\r\n \"Offset\": 1048576,\r\n \"PartitionNumber\": 1\r\n}"
},
{
"2": "{\r\n \"DriveLetter\": null,\r\n \"Offset\": 315621376,\r\n \"PartitionNumber\": 2\r\n}"
},
{
"3": "{\r\n \"DriveLetter\": null,\r\n \"Offset\": 419430400,\r\n \"PartitionNumber\": 3\r\n}"
},
{
"4": "{\r\n \"DriveLetter\": \"C\",\r\n \"Offset\": 553648128,\r\n \"PartitionNumber\": 4\r\n}"
}
]
}
{
"2": [
{
"1": "{\r\n \"DriveLetter\": null,\r\n \"Offset\": 17408,\r\n \"PartitionNumber\": 1\r\n}"
},
{
"2": "{\r\n \"DriveLetter\": \"D\",\r\n \"Offset\": 135266304,\r\n \"PartitionNumber\": 2\r\n}"
}
]
}
В проблема в том, что ConvertTo-Json создает список/массив внутри первого ключа и словарь для каждого объекта внутри этого списка, есть ли способ преодолеть это? Символы новой строки, которые я могу удалить, так что это не большая проблема. Вот как я хочу, чтобы это выглядело:
{
"0":
"1": {"DriveLetter": null, "Offset": 17408, "PartitionNumber": 1},
"2": {"DriveLetter": "F", "Offset": 135266304, "PartitionNumber": 2}
}
{
"1":
"1": {"DriveLetter": null, "Offset": 1048576, "PartitionNumber": 1},
"2": {"DriveLetter": null, "Offset": 315621376, "PartitionNumber": 2},
"3": {"DriveLetter": null, "Offset": 419430400, "PartitionNumber": 3},
"4": {"DriveLetter": "C", "Offset": 553648128, "PartitionNumber": 4}
}
{
"2":
"1": {"DriveLetter": null, "Offset": 17408, "PartitionNumber": 1},
"2": {"DriveLetter": "D", "Offset": 135266304, "PartitionNumber": 2}
}
Это правильный выход, хотя, на выходе вы хотите здесь даже не правильный синтаксис JSON. – yelsayed