Utwórz zagnieżdżony JSON z CSV
Już czytałemUtwórz zagnieżdżony JSON z płaskiego csv, ale to nie pomogło w moim przypadku.
Mam dość duży arkusz kalkulacyjny utworzony za pomocą Dokumentów Google składający się z 11 wierszy i 74 kolumn (niektóre kolumny nie są zajęte).
Stworzyłem przykładdysk Google. Po wyeksportowaniu jakoCSV
To wygląda tak:
id,name,email,phone,picture01,picture02,picture03,status
1,Alice,[email protected],2131232,"image01_01
[this is an image]",image01_02,image01_03,single
2,Bob,[email protected],2854839,image02_01,"image02_02
[description to image 2]",,married
3,Frank,[email protected],987987,image03_01,image03_02,,single
4,Shawn,[email protected],,image04_01,,,single
Teraz chciałbym miećJSON
struktura, która wygląda tak:
{
"persons": [
{
"type": "config.profile",
"id": "1",
"email": "[email protected]",
"pictureId": "p01",
"statusId": "s01"
},
{
"type": "config.pictures",
"id": "p01",
"album": [
{
"image": "image01_01",
"description": "this is an image"
},
{
"image": "image_01_02",
"description": ""
},
{
"image": "image_01_03",
"description": ""
}
]
},
{
"type": "config.status",
"id": "s01",
"status": "single"
},
{
"type": "config.profile",
"id": "2",
"email": "[email protected]",
"pictureId": "p02",
"statusId": "s02"
},
{
"type": "config.pictures",
"id": "p02",
"album": [
{
"image": "image02_01",
"description": ""
},
{
"image": "image_02_02",
"description": "description to image 2"
}
]
},
{
"type": "config.status",
"id": "s02",
"status": "married"
}
]
}
I tak dalej dla innych linii.
Moje teoretyczne podejście polegałoby na przejściu przezCSV
plik na wiersz (tutaj zaczyna się pierwszy problem: teraz każdy wiersz jest równy jednej linii, ale czasami kilka, dlatego muszę policzyć przecinki?). Każdy wiersz jest równy blokowiconfig.profile
, włączającid
, email
, pictureId
, istatusId
(dwa ostatnie są generowane w zależności od numeru wiersza).
Następnie dla każdego rzędu aconfig.pictures
blok jest generowany z tym samymid
jak ten włożony doconfig.profile
blok. Thealbum
jest zbiorem tylu elementów, ile jest podanych obrazów.
Na koniec każdy wiersz maconfig.status
blok, który znowu ma to samoid
jak ten podanyconfig.profile
i jeden wpisstatus
z odpowiednim statusem.
Nie mam pojęcia, jak utworzyć zagnieżdżony i warunkowy plik JSON.
Właśnie doszedłem do punktu, w którym przekonwertowałemCSV
ważneJSON
, bez zagnieżdżania i dodatkowych informacji, które nie są bezpośrednio podane wCSV
, jaktype
, pictureId
, statusId
, i tak dalej.
Każda pomoc jest doceniana. Jeśli łatwiej jest to zaprogramować w innym języku skryptowym (npruby
), Chętnie przestawię się na te).
Zanim ktoś pomyśli, że to zadanie domowe lub coś w tym rodzaju. Nie jest. Chcę tylko zautomatyzować bardzo męczące zadanie kopiowania i wklejania.