- JSON si nadiif ah ayay ugu sawirtaa noocyada asaasiga ah ee Python, iyadoo walxaha iyo safka loo matalayo sida dictators iyo lists, taasoo ka dhigaysa is-weydaarsiga xogta mid fudud.
- Module-ka json ee Python wuxuu bixiyaa shaqooyin dabacsan oo loogu talagalay daabacaadda quruxda badan, habeeyayaasha gaarka ah, iyo kala-horeynta furaha xasilloon.
- Akhrinta, qorista, iyo falanqaynta JSON-ka ku dhex jira faylasha iyo API-yada waxay ku tiirsan yihiin qalabka asaasiga ah ee isku midka ah, oo ay weheliso maaraynta khaladaadka taxaddar leh.
- Marka laga soo tago taxanaha aasaasiga ah, JSON ee Python waxay taageertaa qaabaynta, xaqiijinta, iyo is-dhexgalka qaababka xogta kale sida CSV iyo XML.

JSON si aamusnaan ah ayuu u noqday luqadda caadiga ah ee xogta shabakadda, haddii aad qorayso Python, waxaad meel walba ku dhacdaa: API-yada, faylasha habaynta, "xogta xogta" yar yar ee mashaariicda dhinaca, diiwaanka, iyo xitaa qalabka tijaabada. Fahmidda sida noocyada xogta Python ay ula jaanqaadayaan JSON iyo sida json Module-ku runtii wuu shaqeeyaa waa mid ka mid ah xirfadahaas oo si lama filaan ah uga dhigaya hawlo badan oo maalinle ah kuwo fudud.
Hagahan wuxuu dhex marayaa JSON marka laga eego aragtida barnaamij-sameeyaha Python, sharraxaadda waxa JSON yahay, sida uu ula xiriiro JavaScript, noocyada Python ee uu matali karo, iyo sida loo kala saaro, loo abuuro, loo daabaco si qurux badan, loo xaqiijiyo, loona habeeyo JSON iyadoo la adeegsanayo jsonWaxaan sidoo kale eegi doonnaa kiisaska isticmaalka dhabta ah sida ka shaqaynta faylasha iyo API-yada, iyo sidoo kale tabaha loo maareeyo xogta ku jirta iyo kiisaska geesaha sida khaladaadka ama qiimayaasha gaarka ah sida NaN iyo kuwa aan dhammaadka lahayn.
Waa maxay JSON iyo sida ay ula xiriirto Xogta Python
JSON, oo loo soo gaabiyo JavaScript Object Notation, waa qaab qoraal ah oo loogu talagalay xogta habaysan taas oo asal ahaan ka soo qaadatay qaab-dhismeedkeeda walxaha iyo arraysyada JavaScript. Iyadoo ay jirto asalka JavaScript, JSON waa mid aan la garanayn luqadda waxaana taageera ku dhawaad luqad kasta oo casri ah, oo ay ku jirto Python, taasoo ka dhigaysa mid ku habboon is-weydaarsiga xogta adeegyada, macaamiisha, iyo server-yada.
Fikrad ahaan, JSON waxay isticmaashaa laba baloog oo dhisme oo isku dhafan: JavaScript-ka shay iyo JavaScript-ka arrayShay wuxuu u dhaqmaa sida qaamuus Python ah, taxane-na wuxuu u dhaqmaa sida liiska Python. Labadan, oo lagu daray noocyo yar oo asal ah, JSON wuxuu qeexi karaa qaab-dhismeedka xogta ee isku dhafan.
Shay ku jira JavaScript (iyo JSON) wuxuu u eg yahay sidan: {"key1": value1, "key2": value2}Waa ururin lammaane qiimo-fure ah, halkaas oo furayaashu ay yihiin xargo qiimayaashuna ay noqon karaan qiimo JSON ah oo ansax ah (oo ay ku jiraan walxo kale ama arraysyo kale). Tani waxay si dhow ula mid tahay Python dict.
Array ku jira JavaScript (iyo JSON) wuxuu la mid yahay liiska Python: Waa ururin qiimayaal ah oo la kala hor mariyey, mar kale iyadoo la adeegsanayo nooc kasta oo JSON ah oo ansax ah. Wadajir ahaan, walxaha iyo safafka waxaa loo qaybin karaa si aan kala sooc lahayn si loogu qaabeeyo xog qani ah sida astaamaha isticmaalaha, geedaha habaynta, ama jawaabaha API.
Khariidaynta u dhaxaysa noocyada JSON iyo noocyada Python waa mid aad u fudud, waana sababta aad mararka qaar u maqasho dad si kaftan ah ugu yeeraya "PYON" (Python Object Notation). Marka Python ay codayso ama ay fasirto JSON, iswaafajinta soo socota ayaa khuseysa:
- Shayga JSON → Python
dict - JSON → Python
list - Xariijimaha JSON → Python
str - Lambarka JSON (tiro) → Python
int - Lambarka JSON (dhab ah) → Python
float - JSON
true→ PythonTrue - JSON
false→ PythonFalse - JSON
null→ PythonNone
Xaddidaad muhiim ah ayaa ah in furayaasha shayga JSON ay had iyo jeer yihiin xarfo, markaa haddii aad codeyso Python dict Furayaasha aan xarigga lahayn (tusaale ahaan, tirooyin ama tuples), furayaashaas waxaa lagu qasbi doonaa xarig ama khaladaad kor u qaadi doona iyadoo ku xiran dejimahaaga. JSON waa mid aad ugu fiican sii wadida xogta habaysan sida habaynta ama diiwaannada, laakiin waa ma farsamo guud oo lagu shubo walxaha Python ee aan loo baahnayn.

Module-ka json ee ku dhex jira Python
Python waxay la socotaa module maktabad caadi ah oo la yiraahdo json, taas oo ku siinaysa wax kasta oo aad u baahan tahay si aad ula shaqeyso JSON: falanqaynta xarigyada, ka soo rarista faylasha, si taxane ah u habeynta walxaha Python, iyo habaynta sida xogta loo codeeyo iyo loo furfuro. Uma baahnid wax ku tiirsanaan dibadeed ah hawlaha caadiga ah ee JSON.
Afarta shaqo ee ugu muhiimsan ee aad inta badan isticmaali doonto waa: json.dumps() iyo json.dump() si loogu beddelo walxaha Python JSON, iyo json.loads() iyo json.load() si looga gudbo JSON ilaa noocyada Python. Noocyada "s" waxay la shaqeeyaan xarfo, halka noocyada aan "s" lahayn ay la shaqeeyaan walxaha faylka u eg.
The json encoder-ku wuxuu taageeraa noocyo gaar ah oo Python ah si caadi ah, kuwaas oo dict, list, tuple (sida safafka), str, tirooyin (int, float, iyo tirooyin tirooyin/saf-ka soo jeeda), iyo saddexda keligood ee gaarka ah True, False, Iyo NoneKuwaas waxaa loo beddelaa kuwa u dhigma JSON sida ku cad khariidaynta hore loo sharraxay.
Haddii aad u baahan tahay inaad si taxane ah u habayso walxaha gaarka ah ama noocyada xogta, Naqshadeynta module-ka waa la ballaarin karaa: waxaad hoos u dhigi kartaa JSON encoder-ka oo aad hirgelin kartaa default() hab, ama ka gudub caado default shaqada json.dump() / json.dumps(). Jillaabkaas gaarka ah waa inuu soo celiyaa wax JSON ah oo taxane ah (sida dict or list), ama kor u qaad TypeError haddii aysan garanayn sida loo maareeyo shayga la bixiyay.
Qalabka hoostiisa, module-ku wuxuu sidoo kale bixiyaa habab sida encode() iyo iterencode(), kuwaas oo xogta Python u beddela xarfaha JSON, oo leh iterencode() si tartiib tartiib ah u soo saara qaybaha la codeeyay. Kuwaas si toos ah ayaa loo isticmaalaa laakiin waxay mudan yihiin in la ogaado haddii aad u baahan tahay inaad daawato jawaabaha JSON ee aadka u waaweyn.
U beddelashada walxaha Python una beddel JSON
Markaad rabto inaad xogta Python u rogto qoraal JSON ah, waxaad isticmaashaa json.dump() or json.dumps(), iyadoo ku xiran inaad rabto inaad si toos ah ugu qorto fayl ama aad hesho xarig JSON ah oo ku jira xusuusta. Labada hawloodba waxay wadaagaan halbeegyo asaasi ah oo isku mid ah oo kuu oggolaanaya inaad xakamayso sida beddelku u dhaqmo.
Shaqada json.dump(obj, fp, ...) waxay qaadataa shay Python ah iyo shay u eg fayl, wuxuuna qoraa matalaadda JSON ee obj Faylkaas. Waa lammaane xusuusta ku jira, json.dumps(obj, ...), waxay soo celisaa xaraf JSON ah halkii ay ku qori lahaayeen fayl. Labadooduba waxay aqbalaan taxane ah doodo muhiim ah sida skipkeys, ensure_ascii, check_circular, allow_nan, indent, separators, default, Iyo sort_keys.
Mid kasta oo ka mid ah xulashooyinkan wuxuu hab-dhaqanka codeynta u beddelaa siyaabo aad muhiim ugu ah mashaariicda dhabta ah: Waxaad dooran kartaa inaad ka boodo furayaasha aan sax ahayn, aad ku qasbto wax soo saarka ASCII, aad si qurux badan u daabacdo natiijada, aad xakamayso booska bannaan, aad qeexdo taxane gaar ah oo loogu talagalay walxaha aan caadiga ahayn, ama aad xasiliso kala horraysiinta furaha si loo tijaabiyo iyo kala duwanaanshaha.
Waa kan waxa xuduudaha ugu muhiimsan ay ka dhigan yihiin marka la eego wax ku oolnimada:
skipkeys: haddii loo dejiyayTrue, furayaasha qaamuuska ee aan ahayn noocastr,int,float,boolorNonesi aamusnaan ah ayaa loo boodaa halkii laga qaadi lahaaTypeErrorHaddii aad doorbidayso hab-dhaqanka degdega ah ee guuldareysiga marka furayaashu ay yihiin kuwo qariib ah, u daa sidaFalse.ensure_ascii: GoormaTrue(sida caadiga ah), jilayaasha aan ASCII ahayn iyo kuwa aan la daabacan karin ayaa la baxsaday (tusaale ahaan sida\uXXXX) markaa wax soo saarku wuxuu ahaanayaa ASCII saafi ah. MarkaFalse, xarfaha Unicode waxaa loo qoraa sidii ay ahaayeen, taas oo badanaa ka wanaagsan habaynta ama diiwaanka la akhrin karo ee aadanaha.check_circular: ifTrue, qalabka wax lagu qoro wuxuu hubiyaa tixraacyada wareegsan ee liisaska, ereyada, iyo walxaha gaarka ah ee la codeeyay si looga hortago soo noqnoqoshada aan dhammaadka lahayn.Falsewaxay curyaaminaysaa shabakadda badbaadada waxayna horseedi kartaaRecursionErrorhaddii qaab-dhismeedkaagu uu yahay mid is-tixraac ah.allow_nan: ifTrue, qiimayaal gaar ah oo dul sabeynaya sidaNaN,Infinity, Iyo-Infinitywaa la oggol yahay oo lagu codeeyay si waafaqsan JavaScript, inkastoo aysan si buuxda u ansax ahayn JSON sida ku cad qeexitaanka.False, isku dayga in la codeeyo qiimayaasha noocaas ah ayaa kor u kici doonaValueError.indent: tiro aan taban ahayn (ama xarig) oo xakameysa daabacaadda quruxda badan. Lambar togan macnaheedu waa meelo badan oo ku yaal heer buul ah. Xarig (sida"\t") waxaa si toos ah loogu isticmaalaa gelinta.None(sida caadiga ah) wuxuu doortaa matalaadda ugu yar, iyada oo aan lahayn khadad cusub oo dheeraad ah oo ka baxsan waxa loo baahan yahay.separators: tuple(item_separator, key_separator)xakamaynta xarakaynta iyo booska cad ee u dhexeeya walxaha iyo inta u dhaxaysa furayaasha iyo qiimayaasha. JSON-ka ugu adag, waxaad caadiyan isticmaashaa(",", ":")si aad u furto dhammaan meelaha bannaan ee ikhtiyaariga ah.default: shaqo hesha shay kasta oo aan aqoon sida loo maareeyo. Waa inay soo celisaa beddelka taxanaha ah ee JSON (sida adictorlist), ama kor u qaadTypeErrorKani waa jillaabkii ugu muhiimsanaa ee fasalladaada lagu samayn karo taxane ahaan.sort_keys: ifTrue, qaamuusyada waxaa lagu dhejiyaa furaha iyadoo la kala saarayo. Tani aad bay ugu habboon tahay tijaabooyinka dib-u-celinta iyo wax-soo-saarka la soo saari karo, halkaas oo aad rabto in JSON dumps ay xasilloonaato inta lagu jiro orodka.
Tusaale ahaan, qiyaas inaad haysato liis Python isku dhafan oo ka kooban tirooyin iyo qaamuus leh magac, aqoonsi, iyo dhibco dhibco ah. Waxaad abuuri kartaa oo aad ku kaydin kartaa JSON sidan:
import pathlib
import json
path = pathlib.Path("myTextFile.json")
data =
with path.open(mode="wt") as f:
json.dump(data, f)
print(json.dumps(data, indent=4))
JSON-ka la daabacay si fiican ayaa loo qaabeyn doonaa iyada oo ay ugu wacan tahay indent=4, Muujinta shay kasta oo liis ah iyo furaha qaamuuska ee khadkiisa gaarka ah. Tani waxay ka dhigaysaa khaladaadka iyo tafatirka gacanta mid aad u fudud marka la barbar dhigo hal sadar oo qoraal ah oo cufan.
Dib u eegista JSON ee Python
Si aad qoraalka JSON ugu celiso walxaha Python, waxaad isticmaashaa labada shaqo ee isku habboon: json.load() (walxaha faylasha u eg) iyo json.loads() (xuruufaha JSON). Hawshani waxay falanqeeyaan gelinta waxayna dib u abuuraan noocyada Python iyadoo loo eegayo jadwalka khariidaynta ee hore.
Saxiixyadu waxay u egyihiin sidan: json.load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, kw) iyo json.loads(s, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, kw)Heerka aasaasiga ah, waxaad ugu yeeri kartaa oo keliya qoraalka JSON, laakiin doodaha dheeraadka ah waxay albaabka u furaan hab-dhaqan falanqayn oo horumarsan.
Jillaabyada sida object_hook iyo object_pairs_hook aan kuu habeyno sida walxaha JSON loogu beddelo qaab-dhismeedyo Python ah, adiga oo ku quudinaya ama kuwa la furfuray dict ama liis ah (key, value) Labada qofba way isku mid yihiin. Tani waa mid faa'iido leh haddii aad rabto inaad si toos ah uga dhisto fasallo gaar ah JSON ama aad u ilaaliso kala horraysiinta si gaar ah.
Qalabka kale ee la qaadi karo sida parse_float, parse_int, Iyo parse_constant waxay kuu ogolaaneysaa inaad xakameyso sida loo fasiro tirooyinka iyo calaamadaha gaarka ah. Tusaale ahaan, waxaa laga yaabaa inaad rabto inaad isticmaasho Decimal halkii float qiimaha lacagta, ama isbeddelka "NaN", "inf", Iyo "-inf" galay walxaha ilaalada ee aad dooratay.
Adigoo sii wadaya tusaalihii hore, waxaad akhrin kartaa faylka JSON ee aad qortay sidan:
with path.open(mode="rt") as f:
data = json.load(f)
print(data)
Natiijada ka soo baxda waxay noqon doontaa liis Python caadi ah iyo qaamuus, tusaale ahaan , kaas oo aad ku maamuli karto dhammaan hawlgallada Python ee caadiga ah. Marka laga eego dhinaca koodhkaaga, waa "xog kaliya" mar kale.
Noocyada Python u beddeli karo JSON
Shay kasta oo Python ah looma rogi karo JSON sanduuqa, markaa waa waxtar in la xasuusto qalabka la oggol yahay. Qalabka wax lagu qoro ee wax ku oolka ah wuxuu taageeraa noocyada weelka caadiga ah iyo kuwa scalar, oo ay ku jiraan Booleans iyo None, oo ku khariid iyaga noocyada ugu yar ee JSON.
Sida caadiga ah, waxaad si badbaado leh ugu gudbin kartaa walxaha Python ee soo socda json.dumps():
dict(loo calaamadeeyay sida walxaha JSON)listiyotuple(loo calaamadeeyay sida arraysyada JSON)str(loo calaamadeeyay sida xarfaha JSON)intiyofloat(lagu calaamadeeyay lambarrada JSON)TrueiyoFalse(loo codeeyay sidatrueiyofalse)None(loo codeeyay sidanull)
Marka Python ay kuwan qeexdo, khariidaynta dib ugu noqoshada JSON waa mid toos ah, iyo caksigeeda marka la furfurayo. Tusaale ahaan, Python tuple wuxuu noqonayaa taxane JSON ah, waxaadna heleysaa list dib ugu laabashada culayska. Enums laga soo qaatay int or float sidoo kale waxaa loo qori karaa lambarro ahaan.
Wax kasta oo kale waxay u baahan yihiin hab gaar ah default gacanqaade (si walxaha loogu beddelo matalaad taxane ah) ama waxay sababi doontaa TypeErrorTani waa qaab-dhismeed: JSON waxaa loogu talagalay xogta, ee maaha garaafyada walxaha aan kala sooca lahayn ee leh dhaqanka iyo hababka sida aad u isticmaali karto taxane ahaan pickle.
Inta badan shaqooyinka maalinlaha ah, qaybtan noocyada ah waxay daboolaysaa inta badan kiisaska isticmaalka, oo ay ku jiraan culaysyada API-ga, geedaha habaynta, doorbidyada isticmaalaha, diiwaannada aasaasiga ah, iyo faylasha yaryar ee "u eg kaydka xogta" ee loogu talagalay noocyada ama qalabka hal-isticmaale.
Daabacaad Qurux Badan, Wax Soo Saar Kooban, Iyo Furayaal La Dalbaday
Soo saarista JSON ee cayriin waxay u egtahay inay gebi ahaanba ansax tahay laakiin way adag tahay in la akhriyo, maadaama inta badan la soo saaro iyada oo aan lahayn meel bannaan oo aan loo baahnayn. Si aad u sameyso khaladaad, diiwaan gelin, ama aad ula wadaagto horumariyeyaasha kale, waxaad inta badan u baahan tahay JSON la akhrin karo oo la jeexi karo halkii aad ka isticmaali lahayd hal-liner.
The indent halbeegga json.dumps() waa kabaalka ugu weyn ee daabacaadda quruxda badan, kuu oggolaanaya inaad Python u sheegto inta boos (ama xariggee) ee aad isticmaali doonto heerka gelitaanka. Doorasho caadi ah waa indent=4, inkastoo qaar ka mid ah saldhigyada code-ka ay doorbidaan laba boos ama xarfo tab ah; heshiisyada qaab-dhismeedka way ku kala duwan yihiin mashaariicda.
The separators dooddu waxay kuu ogolaanaysaa inaad si fiican u hagaajiso booska cad xitaa si ka sii fiican, bixinta tuple sida (", ", ": ") si caadi ah loogu talagalay wax soo saarka u fiican aadanaha. Haddii aad rabto matalaadda ugu yar ee suurtogalka ah - tusaale ahaan inaad jarjarto cabbirka culayska badan ee shabakadda - waxaad dejin kartaa separators=(",", ":") si looga saaro meelaha banaan ka dib marka la sameeyo comma iyo colon.
Marka aad danaynayso wax soo saarka go'aaminta, tusaale ahaan imtixaanada cutubyada ama isbarbardhigga sawir-qaadista, dhaqdhaqaaqa sort_keys=True Furaha qaamuuska ee soo saarista barnaamijka wuxuu ka dhigayaa habka loo kala saaray. Sidaas darteed, laba socod oo soo saara xog isku mid ah oo macno ahaan isku mid ah ma kala duwana sababtoo ah qaamuusyadu waxay ku dhaceen furayaasha wax soo saarka ee taxane kala duwan.
Si wada jir ah, indent, separators, Iyo sort_keys ku siineysaa xakameyn badan haddii JSON-gaagu uu ku habboon yahay mashiinnada (isku-dhafan, aan lahayn meel bannaan) ama aadanaha (qalloocan, toosan, oo leh qaab deggan oo ku wareegsan orodka).
Xogta Ku Jirta, Istaraatiijiyadaha Kala-soocidda, iyo Qaababka Helitaanka
JSON-ka dhabta ah, qaab-dhismeedka fidsan ayaa ka reeban; Badanaa waxaad la macaamili doontaa walxaha buulka leh iyo safafka. Ka fikir diiwaanka isticmaalaha caadiga ah ee codsiga ganacsiga elektaroonigga ah: macluumaadka shakhsi ahaaneed, cinwaanada rarista buulka leh, faahfaahinta biilasha buulka leh, iyo laga yaabee liiska dalabaadka, mid walbana waa qaab-dhismeed adag oo u gaar ah.
Marka JSON loo beddelo Python, xogta la dhex geliyay waxay noqotaa isku-darka qaamuusyada iyo liisaska, waxaadna ka heli kartaa adoo isticmaalaya tusmada caadiga ah iyo raadinta muhiimka ah. Qaab-dhismeedka gacmeed, tani waa mid fudud: data, data, iyo wixii la mid ah.
Qaab-dhismeedyada qotoda dheer ama kuwa firfircoon, waxaa laga yaabaa inaad doorbido hab guud oo sida qorista shaqo yar oo dib-u-celin ah oo raadisa furayaasha ama ku socota geed ka kooban dictators iyo lists. Xalalka dib-u-celinta badanaa way ka gaaban yihiin oo way ka fudud yihiin in la akhriyo marka loo eego kuwa soo noqnoqda marka la dhex marayo xogta si aan kala sooc lahayn loo dhexgeliyo.
JSON aan la isku xidhin (fidsan) way fududahay in si toos ah loogu galo iyadoo la adeegsanayo furayaal adag, taas oo si fiican ugu fiicnaan karta adeegyada yaryar ama marka aad si buuxda u xakamayso gelinta. Si kastaba ha ahaatee, marka aad isticmaalayso API-yada dibadda, waa wax caadi ah in la qoro hawlo yar yar oo caawiya oo daboolaya qaab-dhismeedka, si aadan u rushaynin. silsilado ku baahsan saldhiggaaga koodka.
Iyadoo aan loo eegin qoto dheer, isku mid baa ah json.loads() dhaqanku wuu khuseeyaa: Shaybaarku wuxuu aqbalaa xarig JSON ah wuxuuna soo saaraa noocyo Python asal ah oo aad markaa ku maamusho qalabka Python ee caadiga ah. Ma jiro hab-dhismeed gaar ah oo loo baahan yahay marka laga reebo caadiga. dict iyo list tilmaamid.
Ka shaqaynta faylasha JSON: Akhrinta, Qorista, iyo Ku-darka
JSON waxay samaysaa qaab kaydin fudud oo la yaab leh oo waxtar leh mashaariicda yaryar, faylasha habaynta, ama qoraallada u baahan inay sii wadaan xaalad joogto ah. Halkii aad si toos ah u heli lahayd xog ururin buuxda, badanaa waxaad ka bixi kartaa hal ama laba fayl oo JSON ah muddo dheer.
Qorista JSON faylka badanaa waa hab laba-tallaabo ah: si taxane ah u samee xogta Python iyadoo la adeegsanayo json.dumps() ama si toos ah ula socda json.dump(), ka dibna hubi in xarigga ka soo baxay lagu qoray diskka. Haddii aad wacdo open('data.json', 'w'), waxaad heleysaa gacan-qabasho fayl oo ku jirta qaabka qorista kaas oo abuura faylka ama soo gaabinaya haddii uu hore u jiray.
Qaab-dhismeedyada buulka ku jira, hab-maamuusku kama duwana xogta fidsan: weli waad isticmaashaa isla sidaas oo kale json.dump() wicitaan, iyo isku-darka liisaska iyo dict-yada ee isku-dhafan ayaa si isdaba-joog ah loogu codeeyaa. Go'aanka kaliya ee aad inta badan u baahan tahay inaad sameyso waa inta dalool ee aad rabto si aad u akhrido marka loo eego cabbirka faylka.
Akhrinta JSON ee faylka waa liddi ku ah: ku fur faylka qaabka qoraalka, u gudbi shayga faylka json.load(), oo waxaad dib u heleysaa qaab-dhismeedka xogtaada Python. Mar labaad, dhaqanku wuxuu ka madax bannaan yahay sida qoto dheer ee buulku u socdo - decoder-ku wuxuu kuu maamulaa waxaas oo dhan.
Haddii aad u baahan tahay inaad xogta JSON ku darto faylalka jira, Waxyaabuhu way sii kala duwan yihiin. JSON lafteedu si fudud uma taageerto "ku-darka baahinta" sababtoo ah faylka oo dhan waa inuu ahaadaa JSON ansax ah. Qaab caadi ah ayaa ah in la kaydiyo tiro badan oo diiwaanno ah oo la akhriyo/wax ka beddelo/qoro dhammaan safka, ama in la isticmaalo JSON oo xariiq go'an halkaas oo xariiq kasta ay tahay shay JSON gooni ah oo aad ku dari karto adigoon dib u qorin sadarrada hore.
JSON Adduunka Dhabta ah: API-yada, Kaydinta, iyo Isweydaarsiga
Marka aad bilowdo inaad dhisto codsiyada dhabta ah, JSON si dhakhso ah ayuu u noqdaa koolada kaas oo isku xira macaamiisha shabakadda iyo server-yada, adeegyada yaryar, iyo API-yada dhinac saddexaad. Waxaa loo qiimeeyaa labadaba sababtoo ah waa mid kooban iyo sababtoo ah aadanuhu wali si macquul ah ayay u akhrin karaan oo u tafatiri karaan si macquul ah.
Isdhexgalka API, JSON waa qaabka ugu badan ee lacag-bixinta, gaar ahaan adeegyada RESTful. Barnaamijyada Python waxay caadi ahaan isticmaalaan maktabado sida requests si loo diro codsiyada HTTP iyo hel jawaabaha JSON, ka dibna jawaabahaas ku falanqee json.loads() ama iyadoo la adeegsanayo habab caawineed oo duuba.
JSON sidoo kale waa qaab caan ah oo loogu talagalay faylasha qaabeynta iyo diiwaannada, halkaasoo qaab-dhismeedkeeda qiimaha muhiimka ah uu ka dhigayo mid aad uga cadcad qoraalka caadiga ah isagoo fudud marka la barbar dhigo xogta buuxda. Qaybaha nidaamku waxay wadaagi karaan habaynta iyada oo loo marayo JSON, isku-darka log-na waxay kala saari karaan diiwaanka JSON si ay si fudud u shaandheeyaan ama u falanqeeyaan.
Kiis kale oo weyn oo la isticmaalo waa taxane iyo ka-dhigid la'aanta qaab-dhismeedka xogta, U beddelashada ururinta xusuusta ee ku jirta xarfaha JSON (taxaneeynta) ka dibna dib u dhiska iyaga ka dib (ka-saarista). Sidan ayaad u kaydisaa doorbidyada isticmaalaha, Gudbi fariimaha qaabaysan safafka, ama u dir walxaha buulka ku jira xuduudaha adeegga, haddii aad ku dheggan tahay noocyada JSON-ku-habboon ama aad bixiso qalab-qorayaal gaar ah.
Marka laga reebo JSON oo keliya, koodhka Python badanaa wuxuu u baahan yahay inuu u beddelo JSON iyo qaabab kale, sida XML, CSV, ama qoraal caadi ah. Tusaale ahaan, waxaad ka akhrisan kartaa CSV nidaam dhaxal ah, waxaad u beddeli kartaa liis dictators ah, ka dibna waxaad ku tuuri kartaa JSON si aad u hesho API casri ah. Ama waxaad ka soo jiidan kartaa JSON API, caadiyan u samayn kartaa, oo aad qori kartaa CSV si falanqeeyayaashu ay ugu shubaan xaashida xisaabinta.
Qaabaynta, Xaqiijinta, iyo Hawlgallada Dheeraadka ah ee JSON
Marka aad ku raaxaysato akhriska iyo qorista aasaasiga ah, Waxaa jira hawlgallo yaryar laakiin waxtar leh oo aad ku samayn karto xogta JSON si aad u horumariso socodka shaqadaada: qaabaynta akhrinta, simida qaab-dhismeedka buulka ku jira, xaqiijinta in xariggu runtii yahay JSON, iyo kala soocida xogta si loo isbarbardhigo si joogto ah.
Daabacaad qurux badan oo leh json.dumps(..., indent=...) waa tallaabada ugu horreysa, Waxay ku siinaysaa kala sarreyn si fiican u kala fog oo kuu sahlaysa inaad si kooban u aragto arrimaha qaab-dhismeedka. Tani waxay si gaar ah waxtar u leedahay inta lagu jiro khaladaadka ama marka la wadaagayo tusaalooyinka dukumentiyada.
Fidinta JSON ee buulka ku jirta waxay sahlaysaa habaynta iyo falanqaynta hoose, gaar ahaan haddii aad u baahan tahay inaad xogta u beddesho qaab shaxeed sida CSV ama aad ku darto qalab filaya lammaane qiimo muhiim ah halkii aad ka ahaan lahayd walxo qoto dheer oo buul leh. Caadiyan waxaad hirgelisaa inaad naftaada u fidsato adigoo isticmaalaya dib-u-soo-celin ama marin-hawleed ku-celcelis ah oo ku dul yaal dicts iyo liisaska.
Xaqiijinta JSON waxay inta badan ku soo ururtaa isku dayga lagu falanqeynayo iyo qabashada waxyaabaha ka reeban, gaar ahaan haddii aad kaliya xaqiijineyso in xarig uu sax yahay si sax ah. Si aad u hesho hubin adag, waxaad isticmaali kartaa JSON Schema iyo maktabadaha dibadda, laakiin xaalado badan, fudud. try/except ku dhowaad json.loads() waa ku filan
Kala soocidda xogta JSON qiimayaal gaar ah ama fureyaal ayaa kaa caawin kara marka la barbar dhigayo jawaabaha, sameynta sawirro deggan oo loogu talagalay tijaabooyinka, ama si fudud u hubinta in walxaha la midka ah la isku daro. Waxaad kala sooci kartaa liisaska Python-ka hoose iyo dicts-ka ka hor intaadan tuurin ama ku tiirsanaan kartaa sort_keys=True marka diiradda la saarayo kala horraysiinta muhiimka ah ee walxaha.
Khaladaadka Maareynta Marka La Shaqeynayo JSON
Xitaa nidaamyada si wanaagsan loo qaabeeyey waxay ku dhici karaan JSON khaldan ama xog aan la filayn, sidaas darteed maaraynta qaladka adag ee ku saabsan falanqaynta iyo habaynta JSON waa muhiim. Python waxay dhibaatooyinkan ku muujisaa iyada oo loo marayo waxyaabo ka reeban, habka hal-abuurka leh ee wax looga qaban karona waa in lagu soo koobo hawlgallada try...except blocks.
Marka la fasirayo JSON, arrinta ugu badan waa naxwaha aan sax ahayn, sida odhaahyada maqan ee ku saabsan magacyada hantida ama hakadka dambe. json Module-ku wuxuu kicin doonaa qalad cod-bixineed (badanaa json.JSONDecodeError), kaas oo aad qaban karto oo aad ku qori karto ama aad u beddeli karto farriimo fudud oo isticmaale ah.
Tusaale ahaan, isku dayga lagu falanqeynayo xarig jaban waxay keeni kartaa qalad sida: Failed to decode JSON: Expecting property name enclosed in double quotes: line 1 column 29 (char 28)Fariintan noocan ah waxay kuu sheegaysaa ma aha oo kaliya in falanqayntu ay fashilantay laakiin halka qoraalka uu ku wareeray falanqayntu.
Dhinaca codeynta, waxaad ku dhufan kartaa TypeError marka la isku dayayo in la soo koobo noocyada aan la taageerin, or ValueError haddii aad diido NaN iyo xad la'aan iyada oo loo marayo allow_nan=False laakiin xogtaadu waxay ka kooban tahay qiimayaal noocaas ah. Tixraacyada wareegsan ee weelasha ayaa sidoo kale kicin kara RecursionError haddii aad curyaamiso jeegaga wareega.
Dhaqanka ugu wanaagsan waa in hawlgallada JSON loola dhaqmo sidii I/O aan cillad lahayn, gaar ahaan marka aad ka akhrinayso ilo shabakadeed ama faylal dibadeed: had iyo jeer u malaynayso in wax qaldami karaan oo ay ku jiraan waxyaabaha ka reeban, iyadoo laga yaabo inay ku daraan lakabyo xaqiijin ah si loo dhaqan geliyo xaddidaadyo gaar ah oo ku saabsan xogtaada. json.loads() ama hababka caawinta API ee ku jira try...except Baloogyada ayaa ka ilaaliya inta kale ee koodkaaga inay ka soo baxaan guuldarrooyinka soo noqnoqda waxayna kuu ogolaaneysaa inaad soo noqoto khaladaadka JSON ee isticmaalaha u fudud macaamiisha marka ay habboon tahay.
Isticmaalka JSON oo leh API-yada Shabakadda ee Python
Inta badan API-yada shabakadda ee aad kala hadasho Python waxay diri doonaan oo heli doonaan JSON, iyo kaydka horumarinta caadiga ah wuxuu isku daraa requests maktabad (oo loogu talagalay HTTP) oo leh json module (falanqaynta iyo soo saarista JSON). Isku-darkaani wuxuu ka dhigayaa isdhexgalka API mid aad u dabiici ah.
Qaab caadi ah ayaa ah in la waco API endpoint, hubi in lambarka xaaladda jawaabtu uu tilmaamayo guul, ka dibna Faallo ka bixi jirka JSONHalkaas waxaad ka geli kartaa goobaha, maamuli kartaa xogta ku jirta, oo aad jawaabta ku khariidi kartaa moodooyinka domain-kaaga ama waxaad arki kartaa walxaha.
Maareynta khaladaadka waxay noqotaa mid aad muhiim u ah marka wicitaanada shabakadda ay ku lug leeyihiin, sababtoo ah waxaad la kulmi kartaa oo keliya JSON aan sax ahayn laakiin sidoo kale waqtiyada shaqada, khaladaadka isku xirka, ama cilladaha dhinaca server-ka ee ka jawaaba HTML halkii aad ka jawaabi lahayd JSON. json.loads() ama hababka caawinta API ee ku jira try...except baloogyada ayaa ka ilaaliya inta kale ee koodkaaga inay ka soo baxaan guuldarrooyinka soo noqnoqda.
Marka la falanqeeyo, API JSON wuxuu u dhaqmaa sida qaab-dhismeedka xogta Python oo kale, markaa dhammaan farsamooyinka hore looga hadlay - daabacaad qurux badan, simitaan, xaqiijin, kala soocid - si toos ah ayay u khuseeyaan. Ku raaxaysiga u wareejinta xogta Python iyo JSON waa kor u qaadida wax soo saarka weyn marka aad isku xirayso adeegyada. Haddii aad diiradda saareyso dhismaha codsiyada dhabta ah, fiiro gaar ah u yeelashada qaababka maaraynta JSON goor hore waxay badbaadin doontaa waqtiga khaladaadka dambe.
JSON ee Python waxay ka yar tahay wicitaan shaqo oo keliya, waxayna ka badan tahay sanduuqa qalabka: khariidado nooc cad ah, xuduudo habayn dabacsan, jillaabyo loogu talagalay noocyada gaarka ah, faylasha I/O fudud laakiin awood badan, iyo qaabab adag oo loogu talagalay falanqaynta, qaabaynta, iyo xaqiijinta xogta ka timaadda adduunka dibadda, kuwaas oo dhammaantood ka dhigaya JSON mid dabiici ah oo ku habboon barnaamijiyeyaasha Python ee la macaamilaya codsiyada casriga ah ee xogta ku shaqeeya.