தொகுதி பாடங்கள் (1/4)
JSON: தொடர் மற்றும் அலசவும்
JSON என்பது மிகவும் பரவலான தரவு பரிமாற்ற வடிவமாகும். json தொகுதி
நிலையான நூலகம் அதை சொந்தமாக கையாளுகிறது.
பைத்தானில் இருந்து JSON வரை: dumps
json.dumps(object) ஒரு பைதான் பொருளை JSON சரமாக வரிசைப்படுத்துகிறது.
import json
dati = {"nome": "Ada", "anni": 36, "skills": ["python", "matematica"]}
json.dumps(dati)
# '{"nome": "Ada", "anni": 36, "skills": ["python", "matematica"]}'
json.dumps(dati, indent=2, sort_keys=True)
# multi-line formatted string, keys sortedJSON இலிருந்து பைதான் வரை: loads
json.loads(string) JSON சரத்தை பாகுபடுத்தி, பைதான் பொருட்களை வழங்கும்.
testo = '{"nome": "Ada", "anni": 36}'
d = json.loads(testo)
d["nome"] # 'Ada'
type(d) # <class 'dict'>வகை மேப்பிங்
| JSON | மலைப்பாம்பு |
|---|---|
object | dict |
array | list |
string | str |
number | int / float |
true | True |
false | False |
null | None |
கோப்பிலிருந்து: dump / load
with open("config.json", "w") as f:
json.dump(dati, f, indent=2)
with open("config.json") as f:
dati = json.load(f)ட்ரைலிங் "கள்" இல்லாமல் அவை கோப்புகளில் (கோப்பு போன்றது), சரங்களில் "s" உடன் வேலை செய்யும்.
வரிசைப்படுத்த முடியாத வகைகள்: default
datetime, set, உங்கள் தனிப்பயன் வகுப்புகள் இயல்பாக வரிசைப்படுத்தப்படாது:
import datetime, json
json.dumps({"ora": datetime.datetime.now()})
# TypeError: Object of type datetime is not JSON serializableஅவற்றை எவ்வாறு மாற்றுவது என்று கூறும் default செயல்பாட்டை நீங்கள் அனுப்பலாம்:
def converti(obj):
if isinstance(obj, datetime.datetime):
return obj.isoformat()
if isinstance(obj, set):
return list(obj)
raise TypeError(f"non serializzabile: {type(obj)}")
json.dumps({"ora": datetime.datetime.now()}, default=converti)JSON மற்றும் கோப்பு செயல்பாடுகள்
நிலையான நூலகம் json.dump() மற்றும் json.load() ('s' இல்லாமல்) JSON தரவை நேரடியாக மற்றும் கோப்புகளுக்கு நேரடியாக எழுதவும் படிக்கவும் வழங்குகிறது, இயற்கையாக சூழல் மேலாளர்களுடன் இணைக்கிறது:
with open("data.json", "w") as f:
json.dump(data, f)முயற்சி செய்து பாருங்கள்
கொடுக்கப்பட்டுள்ள `data = {'nome': 'Ada', 'anni': 36}`, அதை JSON க்கு உள்தள்ளல்=2 உடன் வரிசைப்படுத்தி, `json_str` மாறிக்கு ஒதுக்கவும். `json_str` ஐ மதிப்பிடவும்.
குறிப்பைக் காட்டு
json.dumps(தரவு, உள்தள்ளல்=2)
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
JSON சரம் கொடுக்கப்பட்டால் s = '[{"nome": "a", "v": 1}, {"nome": "b", "v": 2}]', அதை json.loads உடன் தரவுகளாக அலசவும் மற்றும் மொத்த 'v' மதிப்புகளின் கூட்டுத்தொகையைக் கணக்கிடவும். மொத்தத்தை மதிப்பிடுங்கள்.
குறிப்பைக் காட்டு
json.loads கட்டளைகளின் பட்டியலை வழங்குகிறது.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
கூடுதல் சவால்
JSON சரம் \`json_data = '{"name": "Alice", "age": 30}'\` கொடுக்கப்பட்டால், \`json.loads\` ஐப் பயன்படுத்தி பைதான் அகராதியில் டிகோட் செய்யவும். \`'name'\` விசையுடன் தொடர்புடைய மதிப்பைப் பிரித்தெடுத்து \`user_name\` இல் சேமிக்கவும். இறுதியாக, \`user_name\` ஐ மதிப்பிடவும்.
குறிப்பைக் காட்டு
டிகோட் செய்ய json.loads(json_data) ஐப் பயன்படுத்தவும், பின்னர் தரவு ['பெயர்'] வழியாக அணுகவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்