Résolu transformer un csv en json
- wartraxx
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 4 ans 1 mois - il y a 4 ans 3 semaines #30060
par wartraxx
transformer un csv en json a été créé par wartraxx
Bonjour à tous,
Voici mon soucis j'ai un fichier csv de cette forme la
Key;Domain;currentIP
toto;crash.com;192.168.0.1
titi;crash.com;192.168.0.2
srv;test.com;10.133.40.10
j'essaie d'avoir ce rendu la
{
"zoneName": "crash.com",
"edits": [
{
recordType = A,
action = EDIT,
currentKey = toto,
currentValue = 192.168.0.2,
"newTtl": 300
},
{
recordType = A,
action = EDIT,
currentKey = titi,
currentValue = 192.168.0.1,
"newTtl": 300
}
]
}
le rendu que j'ai
{
"zoneName": "crash.com",
"edits": [
{
recordType = A,
action = EDIT,
currentKey = toto,
currentValue = 192.168.0.1,
"newTtl": 300
}
]
}
{
"zoneName": "crash.com",
"edits": [
{
recordType = A,
action = EDIT,
currentKey = titi,
currentValue = 192.168.0.2,
"newTtl": 300
}]
}
Je ne sais pas comment mettre une boucle sur les mêmes zones pour générer le fichier. Pouvez vous m'aider ?
Voici mon soucis j'ai un fichier csv de cette forme la
Key;Domain;currentIP
toto;crash.com;192.168.0.1
titi;crash.com;192.168.0.2
srv;test.com;10.133.40.10
j'essaie d'avoir ce rendu la
{
"zoneName": "crash.com",
"edits": [
{
recordType = A,
action = EDIT,
currentKey = toto,
currentValue = 192.168.0.2,
"newTtl": 300
},
{
recordType = A,
action = EDIT,
currentKey = titi,
currentValue = 192.168.0.1,
"newTtl": 300
}
]
}
AddressObjects = Import-Csv .test.csv -Delimiter ";"
$AddressObjects | foreach {
$zoneName = $_.Domain
$currentKey = $_.Key
$CurrentIP = $_.currentIP
$Script = "
{
`"zoneName`": `"$zoneName`",
`"edits`": [
{
`"recordType`": `"A`",
`"action`": `"EDIT`",
`"currentKey`": `"$currentKey`",
`"currentValue`": `"CurrentIP`",
`"newTtl`": 300
}
]
}"
echo "$Script"
le rendu que j'ai
{
"zoneName": "crash.com",
"edits": [
{
recordType = A,
action = EDIT,
currentKey = toto,
currentValue = 192.168.0.1,
"newTtl": 300
}
]
}
{
"zoneName": "crash.com",
"edits": [
{
recordType = A,
action = EDIT,
currentKey = titi,
currentValue = 192.168.0.2,
"newTtl": 300
}]
}
Je ne sais pas comment mettre une boucle sur les mêmes zones pour générer le fichier. Pouvez vous m'aider ?
Dernière édition: il y a 4 ans 3 semaines par Arnaud Petitjean.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 1 mois - il y a 4 ans 1 mois #30061
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet transformer un csv en json
Salut,
une possible approche :
une possible approche :
$filepath='c:\temp\datas.csv'
@'
Key;Domain;currentIP
toto;crash.com;192.168.0.1
titi;crash.com;192.168.0.2
srv;test.com;10.133.40.10
'@ > $filepath
$ZoneGrp=import-csv $filepath -delimiter ';'|Group-Object -Property Domain
$ZoneGrp
# Count Name Group
# ----- ---- -----
# 2 crash.com {@{Key=toto; Domain=crash.com; currentIP=192.168.0.1}, @{Key=titi; Domain=crash.com;...
# 1 test.com {@{Key=srv; Domain=test.com; currentIP=10.133.40.10}}
foreach ($Zone in $ZoneGrp)
{
Write-Host "`r`nZone: $($Zone.name)"
foreach ($Item in $Zone.Group)
{ Write-Host "`tItem: $Item" }
}
# Zone: crash.com
# Item: @{Key=toto; Domain=crash.com; currentIP=192.168.0.1}
# Item: @{Key=titi; Domain=crash.com; currentIP=192.168.0.2}
# Zone: test.com
# Item: @{Key=srv; Domain=test.com; currentIP=10.133.40.10}
Tutoriels PowerShell
Dernière édition: il y a 4 ans 1 mois par Laurent Dardenne.
Les utilisateur(s) suivant ont remercié: wartraxx
Connexion ou Créer un compte pour participer à la conversation.
- wartraxx
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 4 ans 3 semaines #30079
par wartraxx
Réponse de wartraxx sur le sujet transformer un csv en json
Merci, ça marche
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.102 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- transformer un csv en json