"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني الحفاظ على ترتيب المفاتيح في كائنات JSON باستخدام مكتبات بايثون؟

كيف يمكنني الحفاظ على ترتيب المفاتيح في كائنات JSON باستخدام مكتبات بايثون؟

تم النشر بتاريخ 2024-11-08
تصفح:562

How Can I Maintain the Order of Keys in JSON Objects Using Python Libraries?

الحفاظ على ترتيب خصائص كائن JSON باستخدام مكتبات Python

عند استخدام json.dumps لتحويل كائن Python إلى سلسلة JSON، فإن قد يكون ترتيب المفاتيح في كائن JSON الناتج غير متوافق مع الترتيب الأصلي للمفاتيح في كائن Python المُدخل. قد يكون هذا مشكلة إذا كان ترتيب المفاتيح محددًا مطلوبًا.

لمعالجة هذه المشكلة، يمكنك الاستفادة من بعض مكتبات Python التي توفر تسهيلات للحفاظ على ترتيب المفاتيح في كائنات JSON.

استخدام معلمةsort_keys

أحد الحلول البسيطة هو استخدام معلمةsort_keys بالتزامن مع json.dumps. عن طريق ضبط مفاتيح الفرز على True، سيتم فرز المفاتيح الموجودة في كائن JSON الناتج بترتيب أبجدي تصاعدي.

import json

json_string = json.dumps({'a': 1, 'b': 2}, sort_keys=True)
print(json_string)  # Output: '{"a": 1, "b": 2}'

باستخدام المجموعات.OrderedDict

للتحكم بشكل أفضل في ترتيب المفتاح، يمكنك استخدام فئة Collections.OrderedDict. يحافظ OrderedDict على ترتيب إدراج أزواج المفتاح والقيمة، مما يضمن أن ترتيب المفتاح في كائن JSON الناتج هو نفس الترتيب الذي تمت به إضافة أزواج المفتاح والقيمة إلى OrderedDict.

from collections import OrderedDict

json_string = json.dumps(OrderedDict([('a', 1), ('b', 2)]))
print(json_string)  # Output: '{"a": 1, "b": 2}'

الحفاظ على ترتيب المفاتيح في الإدخال JSON

إذا كان الإدخال هو بتنسيق JSON، يمكنك استخدام المعلمة object_pairs_hook في json.loads لتحديد الوظيفة التي سيتم استدعاؤها لكل زوج من قيمة المفتاح في كائن JSON. يتيح لك هذا إنشاء OrderedDict للحفاظ على ترتيب المفاتيح.

import json

json_string = '{"a": 1, "b": 2}'
parsed_json = json.loads(json_string, object_pairs_hook=OrderedDict)
print(parsed_json)  # Output: OrderedDict([('a', 1), ('b', 2)])
من خلال استخدام هذه التقنيات، يمكنك التأكد من أن ترتيب الخصائص في كائنات JSON هو بما يتوافق مع الترتيب المطلوب، مما يوفر قدرًا أكبر من المرونة والتحكم في كائنات JSON في بايثون.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3