כיצד לקרוא ולכתוב קבצי Json ב- Python

How Read Write Json Files Python



מאמר זה יסביר כיצד להתמודד עם קבצי JSON ונתונים בשפת התכנות של פייתון. Python מגיע עם מודול json מובנה שהופך את הטיפול בנתוני JSON לקלים ופשוטים.

מידע על JSON

JSON (JavaScript Object Notation) הוא פורמט קובץ ותקן אחסון נתונים שמשתמש בזוגות ערך-מפתח לאחסון והחלפת נתונים. זהו פורמט חילופי הנתונים הנפוץ ביותר, הנראה לעיתים קרובות בממשקי API של RESTful, בסיסי נתונים קלים, קבצי תצורה ותוכנות לא מקוונות או מקוונות אחרות שצריך לאחסן, לאחזר ולהחליף נתונים. רוב שפות התכנות כוללות ספריות לנתח ולכתוב נתוני JSON כברירת מחדל ו- JSON הוא פורמט נתונים אגנוסטי בשפת תכנות. ערכים המאוחסנים בקובץ JSON או במטען בדרך כלל מכילים מחרוזות, מספרים וסוגי נתונים הניתנים לסדרה כמו רשימות (מערכים).







מילוני JSON ופייתון

נתוני JSON בפייתון מומרים לאובייקט מילון באמצעות שיטת טעינה. לעתים קרובות נראה שאנשים מסוימים משווים נתוני json ומילון פייתון, שכן התחביר להגדרת שניהם כמעט זהה. עם זאת, נתוני json אינם אלא מחרוזת טקסט המובנית בתחביר נוקשה בעוד מילון פייתון הוא אובייקט מבנה נתונים המאוחסן בזיכרון. אם אתה רוצה לאחסן נתוני מילון בקובץ טקסט או לשלוח אותם לתוכנית אחרת שאינה פייתון, יהיה עליך להמיר אותם תחילה למחרוזת טקסט (בתים). מחרוזת טקסט שנזרקה / מומרת מוגדרת בתחביר הסטנדרטי של JSON ותהליך המרת מילון פייתון למחרוזת תואמת json נקרא סדרה.



קריאה ושחרור נתוני JSON בפייתון

ניתן לאחזר נתוני JSON כתגובה משרת, לקרוא מהקובץ, לחתוך מפרמטרי שאילתת כתובת URL וכן הלאה. מאמר זה יתמקד בעיקר בקריאת נתוני json מקובץ המאוחסן מקומית. נניח שקובץ test.json מכיל את הנתונים הבאים:



{'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10'}

כדי לקרוא את קובץ test.json ב- python, תוכל להשתמש בקוד שלהלן:





יְבוּאjson

עם לִפְתוֹחַ ('test.json') כפי שו:
נתונים=json.לִטעוֹן(ו)

מזבלה=json.מזבלות(נתונים)

הדפס (נתונים)
הדפס (סוּג(נתונים))
הדפס (מזבלה)
הדפס (סוּג(מזבלה))

השורה הראשונה בקוד הנ'ל מייבאת מודול json. בשורה הבאה, עם פתוח משמש לקריאה בטוחה של תוכן הקובץ. בתוך הבלוק הפתוח, שיטת json.load משמשת לקריאה ושמירה של תוכן קבצים במשתנה הנתונים. הנתונים הטעונים בשלב הקודם מומרים בחזרה למחרוזת json בשיטת json.dump. הפעלת הקוד למעלה תציג את הפלט הבא:

{'שם קוד':'Eoan Ermine', 'גִרְסָה':'אובונטו 19.10'}
<מעמד 'דיקט'>
{'שם קוד':'Eoan Ermine', 'גִרְסָה':'אובונטו 19.10'}
<מעמד 'str'>

שים לב בפלט לעיל ששיטת json.load קוראת נתוני json גולמיים למילון פייתון ואילו שיטות json.dumps ממירות מילון למחרוזת התואמת את מבנה JSON. לאחר שהוסב אובייקט JSON לאובייקט מילון פייתון, תוכל להשתמש בשיטות מילון פייתון מובנות לטיפול בנתונים. הדוגמה למעלה די בסיסית ואינה כוללת מערכים בנתוני JSON או בערכים מקוננים. אולם בתוך פייתון, אתה יכול להתמודד עם ערכים אלה כמו כל מילונים ורשימות מקוננות אחרות.



מיון והדפסה יפה של נתוני JSON

שיטת json.dump תומכת בכמה פרמטרים אופציונליים למיון מפתחות והדפסה יפה של הפלט לשיפור הקריאות.

יְבוּאjson

עם לִפְתוֹחַ ('test.json') כפי שו:
נתונים=json.לִטעוֹן(ו)

מזבלה=json.מזבלות(נתונים,מקשי מיון=נָכוֹן,לְשַׁנֵן=4)
הדפס (מזבלה)

הקוד למעלה יציג את הפלט הבא:

{
'codename': 'Eoan Ermine',
'version': 'Ubuntu 19.10'
}

המרות מסוג נתונים

הרשימה שלהלן ממחישה כיצד ערכי JSON מומרים לאובייקטים של פייתון ולהיפך.

JSON פִּיתוֹן
חוּט עמ
מספר int או לצוף
אמת שקר אמת שקר
ריק אף אחד
מַעֲרָך רשימה
לְהִתְנַגֵד דיקט

מודול שורת הפקודה Json.tool

Python כולל כלי שורת פקודה נחמד json.tool שניתן להשתמש בו כדי לאמת ולהדפיס מחרוזות וקבצים JSON יפה.

הד הד'{' codename ':' Eoan Ermine ',' version ':' Ubuntu 19.10 '}'| python3 -m json.כְּלִי

הפעלת הפקודה למעלה תראה לך את הפלט הבא:

{
'codename': 'Eoan Ermine',
'version': 'Ubuntu 19.10'
}

תוכל גם להשתמש ב- json.tool עם קבצי JSON. החלף את in_file ו- out_file בפקודה למטה בערכים הרצויים שלך:

$ python3 -m json.כְּלִיקובץ out_file

מלבד הדפסה יפה, מיון ואימות נתוני JSON, json.tool לא עושה שום דבר אחר. אז אם אתה רוצה לתפעל נתוני JSON כלשהם, עליך לכתוב קוד מותאם אישית משלך באמצעות מודול ה- JSON המובנה.