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.