Seasann JSON do nodaireacht réad JavaScript. Ní hamháin go bhfuil sé éadrom ach tá sé éasca é a léamh agus a scríobh do dhaoine. Ar an gcaoi chéanna, bíonn sé éasca le meaisíní a pharsáil agus a ghiniúint. Tá JSON Parsing thar a bheith tábhachtach agus tú ag obair le sonraí ó APIs, comhaid chumraíochta, nó foinsí eile faisnéise stóráilte d'aon fhorbróir Python. Tógann an t -alt seo tú trí nósanna imeachta bunúsacha chun JSON a pharsáil ag baint úsáide as modúl JSON Python.
Léiríonn JSON sonraí mar phéirí príomhluacha, cosúil le foclóir Python. Seo sampla bunúsach de réad JSON:
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"]
}
Cuimsíonn an réad JSON seo teaghrán, uimhir, boole, agus eagar. Tá tuiscint ar an struchtúr seo bunúsach chun sonraí JSON a pharsáil agus a ionramháil i Python.
Mar gheall ar mhodúl JSON Python, tá sé simplí teaghráin agus comhaid JSON a pharsáil. Cuimsíonn an modúl seo modhanna ar nós JSON.LOADS () chun JSON a léamh ó shreangán, agus json.load () chun JSON a léamh ó chomhad. Os a choinne sin, úsáidtear json.dumps () agus json.dump () chun json a scríobh chuig teaghrán agus comhad, faoi seach.
Tá roinnt bealaí ann chun sonraí JSON a léamh, a mbreathnóimid ar an gcéad cheann eile.
Chun sonraí JSON a léamh ó shreangán, bain úsáid as an modh json.loads ():
import json
json_string = '{"name": "Alice", "age": 30, "is_student": false, "courses": ["Math", "Science"]}'
data = json.loads(json_string)
print(data)
Aschur:
Chun sonraí JSON a léamh ó chomhad, bain úsáid as an modh json.load ():
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Aschur:
Seo roinnt bealaí éagsúla chun sonraí JSON a scríobh:
Chun sonraí JSON a scríobh chuig teaghrán, bain úsáid as an modh json.dumps ():
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
json_string = json.dumps(data)
print(json_string)
Aschur:
Chun sonraí JSON a scríobh chuig comhad, bain úsáid as an modh json.dump ():
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
with open('data.json', 'w') as file:
json.dump(data, file)
Tá rudaí JSON neadaithe coitianta agus tú ag obair le struchtúir sonraí níos casta. Is féidir le Python na struchtúir neadaithe seo a láimhseáil go héasca.
import json
nested_json_string = '''
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"],
"address": {
"street": "123 Main St",
"city": "Wonderland"
}
}
'''
data = json.loads(nested_json_string)
print(data['address']['city'])
Aschur:
Uaireanta, ní mór duit rudaí saincheaptha Python a thiontú ina JSON. Éilíonn sé seo ionchódóir saincheaptha.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
class StudentEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Student):
return obj.__dict__
return super().default(obj)
student = Student("Alice", 30, False)
json_string = json.dumps(student, cls=StudentEncoder)
print(json_string)
Aschur:
Ar an gcaoi chéanna, chun sonraí JSON a dhíchódú i rudaí saincheaptha Python, tá díchódóir saincheaptha de dhíth ort.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
def student_decoder(dct):
return Student(dct['name'], dct['age'], dct['is_student'])
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
student = json.loads(json_string, object_hook=student_decoder)
print(student.name)
Aschur:
Is féidir le roinnt earráidí coitianta a bheith mar thoradh ar oibriú le sonraí JSON, go háirithe agus sonraí JSON á bparsú, a ghiniúint nó a rochtain. Seo cuid de na cinn is coitianta:
Earráid choitianta nuair a bhíonn Parsing JSON ag dul i ngleic le formáid neamhbhailí JSON. Éilíonn JSON luachana dúbailte timpeall ar eochracha agus luachanna teaghrán, agus neadú ceart lúibíní agus braces.
import json
invalid_json_string = "{'name': 'Alice', 'age': 30, 'is_student': False}"
try:
data = json.loads(invalid_json_string)
except json.JSONDecodeError as e:
print(f"Invalid JSON format: {e}")
Aschur:
Agus tú ag parsáil sonraí JSON, d'fhéadfá teacht ar eochracha atá ar iarraidh. Bain úsáid as an modh GET chun luach réamhshocraithe a sholáthar má tá eochair ar iarraidh.
import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)
Bain úsáid as an modúl PDB chun pointí briste a shocrú agus do chód parsála JSON a dhífhabhtú.
import json
import pdb
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
pdb.set_trace()
data = json.loads(json_string)
print(data)
Is minic a bhíonn scríobadh gréasáin i gceist le sonraí a bhaint as APIs gréasáin a chuireann freagraí JSON ar ais. Seo sampla dlúth ag baint úsáide as an leabharlann iarratais agus an críochphointe https://httpbin.org/anything.
Ar dtús, cinntigh go bhfuil an leabharlann iarratais suiteáilte agat:
pip install requests
Iarrann an cód seo iarratais ar iarratais HTTP agus JSON chun sonraí JSON a láimhseáil. Seolann sé iarratas GET chuig an sprioc URL ag baint úsáide as iarratais.get (URL) agus cuireann sé an freagra JSON in iúl le freagra.json (), agus é á chasadh ina fhoclóir Python. Déanaimid sonraí áirithe a tharraingt amach agus a phriontáil mar cheanntásca, gníomhaire úsáideora, bunús, agus URL.
Tá láimhseáil láidir earráidí sa chód; Gabhfaidh sé JSON.JSondeCodeerRor nuair a tharlaíonn earráid díchódú JSON, agus nuair a bhíonn eochair shonrach as láthair, dá bhrí sin, rud a fhágann go bhfuil an clár á chosaint ó thimpistí ‘gan aon sonraí’. Dá bhrí sin, cuireann stóinseacht an chóid sin ar a chumas tascanna scríobtha gréasáin a láimhseáil go foirfe.
import requests
import json
url = 'https://httpbin.org/anything'
response = requests.get(url)
try:
data = response.json()
# Sonraí sonracha a bhaint as freagra JSON
headers = data['headers']
user_agent = headers.get('User-Agent', 'N/A')
origin = data.get('origin', 'N/A')
url = data.get('url', 'N/A')
print(f"User Agent: {user_agent}")
print(f"Origin: {origin}")
print(f"URL: {url}")
except json.JSONDecodeError:
print("Error decoding JSON response")
except KeyError as e:
print(f"Key error: {e} not found in the JSON response")
Ní mór go mbeadh a fhios ag gach códóir Python conas JSON a pharsáil. Leis an modúl JSON agus an bealach is fearr chun é a dhéanamh aibhsithe ag an lámhleabhar seo, beidh tú in ann sonraí JSON a léamh, a scríobh agus a dhífhabhtú go tapa. Ciallaíonn sé sin go ndéanfaidh tú tástáil rialta ar do chóid, agus go mbainfidh tú úsáid as na huirlisí cearta agus as na gnéithe is mó atá ar fáil i Python le haghaidh scileanna láimhseála JSON níos fearr.
Agus scríobadh gréasáin á dhéanamh agat, faigheann duine amháin go bhfuil parsáil JSON tábhachtach, ag cur san áireamh go bhfuil sonraí a fhaightear ó APIs gréasáin de ghnáth i bhfoirm JSON seachas, is féidir leat faisnéis a bhaint as foinsí gréasáin éagsúla go héifeachtach, más féidir leat sonraí JSON a pharsáil agus a láimhseáil Ar bhealach maith.
Tuairimí: 0