Moi
Haen rajapinnalta JSONia, jonka luen json.loads funktiolla sisään koodiin ja joka pitäisi nyt saada silmukoitua läpi.
En kuitenkaan saa mitään tolkkua tuohon esim. for-silmukoiden avulla.
Onko tuo nyt siis aivan väärä tapa käsitellä JSONia ja lähestyä ao. ongelmaa?
Seuraavanlaista JSONia ladataan ja sitä tulisi kommenttien mukaisesti muokata (lyhyesti: vaihtaa jokaisen ID avaimen arvo):
{
"name": "Model",
"panels": [ // Sisältää useita ao. kaltaisi lapsielementtejä
{
"account": "secret",
"data": {
"hasDetailsView": false,
"filters": [
{
"type": "include",
"id": "2522" // Jokaisen lapsielementin ID:n arvo pitäisi muuttaa
}
],
"accountName": "secret"
}
},Etiäpäin taaksepäin etiäpäin - selvisihän se, kun kykeni vain keskittymään.
for panels in model['panels']:
if panels['data']['filters']:
panels['data']['filters'][0]['id'] = 'MY FOKIN FILTER'Tosin tuo koodisi on väärin, koska panels on lista useasta alkiosta eikä yksittäinen tietue...
The Alchemist kirjoitti:
Tosin tuo koodisi on väärin, koska panels on lista useasta alkiosta eikä yksittäinen tietue...
For-silmukka käy listan alkiot läpi, jolloin panels-muuttuja sisältää vain yhden alkion. Koodi on siis siltä osin oikein. Tietysti voi saivarrella, että muuttujan nimen pitäisi olla yksikössä panel.
Itse ihmettelen sitä, että muutetaan vain filters-taulukon ensimmäistä kohtaa. Onko varmasti juuri siinä muutettava arvo, vai pitäisikö käydä läpi koko filters-taulukko ja muuttaa kaikki tai tietyn tyyppiset?
Niin no, taisin hämääntyä siitä, kun en tiedostanut for-silmukan olemassaoloa ja muuttujan nimi oli monikossa. Työaikaan ei ole ihan välkyimmillään. :oops:
Aihe on jo aika vanha, joten et voi enää vastata siihen.