English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تنسيق JSON في بايثون

JSON (Java Script Object Notation) هو تنسيق بيانات خفيف، ومقبول عالميًا. باستخدام تقنية تنسيق JSON في Python، يمكننا تحويل سلسلة JSON إلى كائن Python، أو تحويل كائن Python إلى سلسلة JSON.

للإستفادة من هذه الميزات، يجب علينا استخدام وحدة json في Python. وحدة json مدمجة في مكتبة Python القياسية. لذلك، يجب علينا أولاً استيرادها.

import json

تحويل كائن Python إلى سلسلة JSON

في وحدة json، هناك بعض الطرق مثل dump() وdumps()، يمكنها تحويل كائن Python إلى سلسلة JSON. لديها طريقتان، الأولى هي كائن، والثانية هي كائن ملف. تقوم هذه الطريقة بتحويل الكائن إلى تنسيق JSONالنهرتحويل إلى كائن ملف. وبالمثل، يقبل طريقة dumps() معاملًا واحدًا فقط. المعامل هو الكائن. يتحول الكائن إلى JSONالسلسلة.

مثال على الشيفرة

import json
from io import StringIO
str_io_obj = StringIO()
#Use JSON Dump to make StringIO
json.dump(["India", "Australia", "Brazil"], str_io_obj)
print('Object StringIO value: ' + str(str_io_obj.getvalue()))
my_json = {
   "name": "Kalyan",
   "age": 25,
   "city": 'Delhi'
{}
print(json.dumps(my_json, indent=4))

نتيجة الخروج

Object StringIO value: ["India", "Australia", "Brazil"] {
   "name": "Kalyan",
   "age": 25,
   "city": "Delhi"
{}

تحويل سلسلة JSON إلى كائن Python

في هذه الحالة، سنقوم بفك التسلسل لسلسلة JSON. هناك طريقتان مختلفتان. هما load() و load(). كلاهما يستخدمان JSON الملف كمعامل. يحول load() بيانات الكائن إلى كائن Python، بينما يحول load() من نوع سلسلة.

مثال على الشيفرة

import json
from io import StringIO
str_io_obj = StringIO('["xyz", "abc", "xyz", "pqr"]')
#load from StringIO
print('Load: ' + str(json.load(str_io_obj)))
print('String to Json: ' + str(json.loads('{"xyz" : 1, "abc" : 2, "xyz" : 3, "pqr" : 4}')))

نتيجة الخروج

Load: ['xyz', 'abc', 'xyz', 'pqr']
String to Json: {'xyz': 3, 'abc': 2, 'pqr': 4}

مصنفات JSON编码器 وdecoder في Python

يستخدم JSONEncoder لتحويل أغراض Python إلى تنسيق JSON. في هذا المثال، سنرى كيفية استخدام JSONEncoder لتحويل أغراض معقدة إلى أغراض نوع JSON.

مثال على الشيفرة

import json
class Comp_Encoder(json.JSONEncoder):
   def default(self, comp_obj):
      if isinstance(comp_obj, complex):
      return [comp_obj.real, comp_obj.imag]
      return json.JSONEncoder.default(self, comp_obj)
      print(json.dumps(5+8j, cls=Comp_Encoder))

نتيجة الخروج

[5.0, 8.0]

يؤدي JSONDecoder إلى عملية عكسية.

مثال على الشيفرة

import json
my_str = '{"Asim" : 25, "Priyesh" : 23, "Asim" : "28"}'
#Decode JSON using the JSONDecoder
print(json.JSONDecoder().decode(my_str))
print(json.JSONDecoder().raw_decode(my_str))

نتيجة الخروج

{'Asim': 28, 'Priyesh': 23}
({'Asim': 28, 'Priyesh': 23}, 44)
مفضل لك