Che Posted May 28, 2017 Report Posted May 28, 2017 Salut ! 1. Am un browser in pycurl care acceseaza un url iar raspunsul este in format json. Cum se procedeaza in acest caz ca nu ma pricep. La html faci results.getvalue si asa mai departe. Care ar fi diferentele la json ? Cum ar trebui sa-l accesez ? In al doilea rand, cel mai important, rezultatul de tip json este ceva de genul: { "mainPrincipalAnimals": [{ "tip": "Catel", "numar": 37, "subtip": "Gelu Ionescu", "regiune": "Muntii Carpati", "id": 0, "grupName": null, "miscareId": 8, "miscareRegionala": 32, "miscareRegionalaCod": null, "miscareRegionalaNume": "Romania", "cod": "pu123", "anotherName": "Javre", "numeroA": 2.453453465, "numeroB": 9, "NumeroC": 787.0, "numeroD": 0.0, "numeroE": 33.534534, "numeroF": 65.54532, "others": 22.8633, "criteria_perfection": 454.52345345563 }, { "tip": "Catel", "numar": 37, "subtip": "Gelu Ionescu", "regiune": "Muntii Carpati", "id": 0, "grupName": null, "miscareId": 8, "miscareRegionala": 32, "miscareRegionalaCod": null, "miscareRegionalaNume": "Romania", "cod": "pu123", "anotherName": "Javre", "numeroA": 2.453453465, "numeroB": 9, "NumeroC": 787.0, "numeroD": 0.0, "numeroE": 33.534534, "numeroF": 65.54532, "others": 22.8633, "criteria_perfection": 454.52345345563 }, "paging": { "currentPage": 1, "totalPages": 5, "resultsPerPage": 20, "totalResults": 98, "firstRecordIndex": 1, "lastRecordIndex": 20 }, "statColumns": ["coadaScurtaMaro", "coadaScurtaRosie", "coadaScurtaGalbena", "turbare", "micareFaina", "avioaneRomanesti"] } Asta de mai sus fiind facut asa cu js beautifier http://jsbeautifier.org/ ca tu il primesti de fapt asa pe tot gramada, cu acolade, cu tot, fara spatii, fara nimic de nici nu se intelege (adica e comprimat). 2. Cum fac ca sa parsez cat mai simplu si mai frumos chestia de mai sus si apoi sa bag totul intr-o baza de date, de exemplu "catel" la coloana "tip", "37" la coloana "numar", "Muntii Carpati" la coloana "regiune" si asa mai departe, prima valoare fiind coloana si a doua e ce trebuie scris in coloana ? 3. Dar daca as vrea, de exemplu sa bag, "paging" intr-o baza de date, cum as putea face asta ? Multumesc mult de tot ! Quote
Active Members dancezar Posted May 28, 2017 Active Members Report Posted May 28, 2017 (edited) >>> import json >>> a='{"test":"1","tes2":2}' >>> parsed=json.loads(a) >>> for p in parsed: ... print p ... print parsed[p] ... test 1 tes2 2 >>> Edited May 28, 2017 by dancezar 1 Quote
Active Members MrGrj Posted May 28, 2017 Active Members Report Posted May 28, 2017 Mi-e prea lene sa scriu: https://stackoverflow.com/a/8812069/6165050 1 Quote
Tuckle Posted May 28, 2017 Report Posted May 28, 2017 (edited) Dupa ce ai preluat raspunsul si ai retinut datele json intr-o variabila, ai 2 cazuri: - fie citesti si interpretezi automat ca json outputul si ai un json object intr-o variabila json_value - fie ai un string ca output si faci json_value = json.loads(output_text) Dupa ce ai variabila respectiva poti accesa valori de la chei in mai multe feluri: 1. main_principal_animals = json_value["mainPrincipalAnimals"] (poti sa verifici daca o cheie 'alpha' exista in dictionar cu < if 'alpha' in json_value: >) 2. main_principal_animals = json_value.get('mainPrincipalAnimals', 'Pisi') <- in cazul in care cheia 'mainPrincipalAnimals' nu exista, variabila va retine stringul "Pisi" Ca sa iti raspund la intrebarile tale acum: 1. dictionary = json.loads(results.getvalue()) 2. cum am zis mai sus un pic 3. depinde de baza de date pe care o folosesti dar daca folosesti baza de date nosql cu documente, ar fi de ajuns sa inserezi jsonul tau cu informatiile dorite. Edited May 28, 2017 by Tuckle 2 Quote
Che Posted May 28, 2017 Author Report Posted May 28, 2017 Multumesc tuturor de raspunsuri ! (Nu vreau sa fac bump dar chiar mi-e de ajutor !) Quote