الصنف csv.DictReader()‎‎ في بايثون

من موسوعة حسوب

تنشئ الدالة البانية لهذا الصنف كائنًا يعمل كقارئ عادي ولكنّه يربط المعلومات في كل سطر بقاموس مرتّب OrderedDict تحدّد مفاتيحه بواسطة المعامل الاختياري fieldnames.

البنية العامة

class csv.DictReader(f, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)

‎المعاملات

‎f

ملف csv المراد قرائته.

fieldnames

معامل اختياري، وهو عبارة عن تسلسل. إن لم يُستخدم هذا المعامل فإنّ القيم الموجودة في السطر الأول من الملف المفتوح ستُستخدم كأسماء للحقول. وبصرف النظر عن طريقة تحديد أسماء الحقول فإنّ القاموس المرتّب سيحافظ دائمًا على ترتيبها الأصلي.

restkey

إن تضمّن سطرٌ حقولًا أكثر من أسماء الحقول، توضع البيانات المتبقّية في قائمة وتُخزّن تحت حقل يحمل الاسم المحدّد بواسطة المعامل restkey (والذي يأخذ القيمة الافتراضية None).

إن امتلك سطر غير فارغ حقولًا أقلّ من اسماء الحقول، توضع القيمة None محلّ القيم المفقودة.

تمرّر بقية المعاملات الاختيارية أو المفتاحية إلى نسخة كائن القراءة الضمني.

ملاحظة: أصبحت الأسطر المعادة من نوع OrderedDict في الإصدار 3.6 من بايثون.

أمثلة

يبين المثال التالي طريقة الاستفادة من كائنات القراءة:

>>> import csv
>>> with open('names.csv', newline='') as csvfile:
...     reader = csv.DictReader(csvfile)
...     for row in reader:
...         print(row['first_name'], row['last_name'])
...
Eric Idle
John Cleese

>>> print(row)
OrderedDict([('first_name', 'John'), ('last_name', 'Cleese')])

انظر أيضًا

  • الدالة csv.reader()‎: تعيد الدالة كائن قراءة مهمّته هي المرور على جميع الأسطر في ملف csv المعطى.
  • الصنف DictWriter.

مصادر

صفحة CSV File Reading and Writing في توثيق بايثون الرسمي.