تقنية

DictWriter في بايثون: هل ignore يحذف المفتاح من القاموس؟

الخرج bud,7 دون note في المثال.
خرج بلا المفتاح الزائد.

extrasaction="ignore" في DictWriter يتجاهل المفاتيح الزائدة على fieldnames. [1]

الخلاصة السريعة

لا؛ في مثالنا يغيب note من الخرج ويبقى في row. [1]

  • extrasaction="ignore" في DictWriter يتجاهل المفاتيح الزائدة على fieldnames. [1]
  • الافتراضي extrasaction="raise" يطلق ValueError عند وجود مفتاح زائد. [1]
  • مثال مؤلف على CPython 3.12.14: row أدناه؛ الخرج 'bud,7\r\n'. [1]
  • يحتفظ row بالمفتاح note وقيمته leaf؛ لا تظهر في الخرج. [1]
  • تحكم: تركيب bud وفاصلة و7 ونهاية السطر يطابق الخرج؛ الكاتب الافتراضي يطلق ValueError. [1]

تجاهل في الخرج

extrasaction="ignore" في DictWriter يتجاهل المفاتيح الزائدة على fieldnames. [1]

الافتراضي يرفض الزائد

الافتراضي extrasaction="raise" يطلق ValueError عند وجود مفتاح زائد. [1]

صف بقاموس مؤلف

مثال مؤلف على CPython 3.12.14: row أدناه؛ الخرج 'bud,7\r\n'. [1]

import csv from io import StringIO row=dict(name="bud",qty=7,note="leaf") buffer=StringIO() writer=csv.DictWriter(buffer, fieldnames=["name","qty"], extrasaction="ignore") writer.writerow(row) [1]

row يبقي note بقيمة leaf في المثال.
مدخل يحتفظ بالمفتاح.

المدخل والتحكم

يحتفظ row بالمفتاح note وقيمته leaf؛ لا تظهر في الخرج. [1]

buffer.getvalue() -> 'bud,7\r\n' [1]

تحكم: تركيب bud وفاصلة و7 ونهاية السطر يطابق الخرج؛ الكاتب الافتراضي يطلق ValueError. [1]

المراجع

  1. Python — CSV

للتوسع: لغات البرمجة.

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