Apie JSON
JSON („JavaScript Object Notation“) yra failo formatas ir duomenų saugojimo standartas, kuris naudoja raktų ir verčių poras duomenims saugoti ir keistis. Tai yra plačiausiai naudojamas duomenų mainų formatas, dažnai matomas RESTful API, lengvose duomenų bazėse, konfigūracijos failuose ir kitoje neprisijungus arba internetinėje programinėje įrangoje, kuriai reikia saugoti, gauti ir keistis duomenimis. Daugumoje programavimo kalbų yra bibliotekos JSON duomenims analizuoti ir rašyti pagal numatytuosius nustatymus, o JSON yra programavimo kalbos agnostinis duomenų formatas. JSON faile arba naudingojoje apkrovoje saugomose reikšmėse paprastai yra eilutės, skaičiai ir serijiniai duomenų tipai, pvz., Sąrašai (masyvai).
JSON ir Python žodynai
JSON duomenys „python“ paverčiami žodyno objektu naudojant „apkrovos“ metodą. Dažnai pastebima, kad kai kurie žmonės sutapatina „Json“ duomenis ir „Python“ žodyną, nes jų abiejų apibrėžimo sintaksė yra beveik vienoda. Tačiau „Json“ duomenys yra ne kas kita, o teksto eilutė, sukonstruota griežtoje sintaksėje, o „Python“ žodynas yra duomenų struktūros objektas, saugomas atmintyje. Jei norite išsaugoti žodyno duomenis tekstiniame faile arba nusiųsti į kitą programą, nesusijusią su Python, pirmiausia turėsite konvertuoti ją į teksto eilutę (baitus). Ši perkelta / konvertuota teksto eilutė yra apibrėžta standartinėje JSON sintaksėje, o pitono žodyno pavertimo į Json suderinamą eilutę procesas vadinamas serializavimu.
JSON duomenų skaitymas ir išmetimas „Python“
JSON duomenis galima gauti kaip atsakymą iš serverio, nuskaityti iš failo, supjaustyti iš URL užklausos parametrų ir pan. Šiame straipsnyje daugiausia dėmesio bus skiriama „Json“ duomenų skaitymui iš vietoje saugomo failo. Tarkime, kad „testas.json “faile yra šie duomenys:
"kodo pavadinimas": "Eoan Ermine", "versija": "Ubuntu 19.10 "Norėdami perskaityti testą.json failą „Python“, galite naudoti žemiau esantį kodą:
importuoti Jsonsu atviru ("testas.json ") kaip f:
duomenys = json.apkrova (f)
dump = json.sąvartynai (duomenys)
spausdinti (duomenys)
spausdinti (tipas (duomenys))
spausdinti (išversti)
spausdinti (tipas (iškelta))
Pirmoji eilutė aukščiau esančiame kode importuoja „Json“ modulį. Kitoje eilutėje „su atidaryta“ naudojama saugiai nuskaityti failo turinį. Bloke „su atviru“ „json.įkelti “metodas naudojamas failo turiniui kintamajame„ data “nuskaityti ir išsaugoti. Ankstesniame etape įkelti duomenys vėl paverčiami „Json“ eilute, naudojant „json.sąvartynas “metodas. Paleidus aukščiau esantį kodą bus rodoma ši išvestis:
'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '"kodo pavadinimas": "Eoan Ermine", "versija": "Ubuntu 19.10 "
Aukščiau pateiktame išvestyje atkreipkite dėmesį, kad „json.įkelti “metodas nuskaito neapdorotus„ Json “duomenis į pitono žodyną, o„ json.sąvartynai “metodais žodynas paverčiamas eilute, suderinama su JSON struktūra. Kai JSON objektas bus paverstas Python žodyno objektu, galite naudoti įmontuotus Python žodyno metodus tvarkyti duomenis. Aukščiau pateiktas pavyzdys yra gana paprastas ir jame nėra masyvų į JSON duomenis ar įdėtas vertes. Tačiau „python“ sistemoje šias reikšmes galite tvarkyti kaip ir kitus įdėtus žodynus ir sąrašus.
JSON duomenų rūšiavimas ir gražus spausdinimas
„Json.metodas “palaiko kai kuriuos pasirinktinius raktų rūšiavimo parametrus ir gražų išvesties spausdinimą, kad būtų lengviau skaityti.
importuoti Jsonsu atviru ("testas.json ") kaip f:
duomenys = json.apkrova (f)
dump = json.sąvartynai (duomenys, rūšiavimo raktai = tiesa, įtrauka = 4)
spausdinti (išversti)
Aukščiau pateiktas kodas parodys šią išvestį:
„kodinis vardas“: „Eoan Ermine“,
"versija": "Ubuntu 19.10 "
Duomenų tipo konversijos
Žemiau pateiktame sąraše parodyta, kaip JSON reikšmės paverčiamos į python objektus ir atvirkščiai.
JSON | „Python“ |
stygos | str |
numeris | int arba plukdyti |
tiesa, melas | Tiesa, melas |
niekinis | Nė vienas |
masyvas | sąrašą |
objektas | diktuoti |
Json.įrankis Komandinės eilutės modulis
„Python“ yra gražus komandinės eilutės įrankis „json.įrankis “, kuris gali būti naudojamas patvirtinant ir gražiai spausdinant JSON eilutes ir failus.
$ echo '"kodinis vardas": "Eoan Ermine", "versija": "Ubuntu 19.10 " '| python3 -m json.įrankisVykdydami anksčiau pateiktą komandą, parodysite šį išvestį:
„kodinis vardas“: „Eoan Ermine“,
„versija“: „Ubuntu 19.10 "
Taip pat galite naudoti Json.įrankis su JSON failais. Žemiau esančioje komandoje pakeiskite „in_file“ ir „out_file“ norimomis reikšmėmis:
$ python3 -m json.įrankis faile out_fileIšskyrus gražų JSON duomenų spausdinimą, rūšiavimą ir patvirtinimą, Json.įrankis nieko kito nedaro. Taigi, jei norite tvarkyti bet kokius JSON duomenis, turite parašyti savo pasirinktinį kodą naudodami integruotą JSON modulį.