मेरे पास ऊपरी मामले में कॉलम नामों के साथ एक CSV फ़ाइल है। मैं csv.dictreader का उपयोग कर डेटा पढ़ रहा हूं लेकिन लोअरकेस में कॉलम नामों की आवश्यकता है।पायथन dictreader - सीएसवी कॉलम नाम लोअरकेस कैसे बनाएं?
मैंने पाया इस कोड को यहाँ Accessing csv header white space and case insensitive
import csv
class DictReaderInsensitive(csv.DictReader):
# This class overrides the csv.fieldnames property.
# All fieldnames are without white space and in lower case
@property
def fieldnames(self):
return [field.strip().lower() for field in super(DictReaderInsensitive, self).fieldnames]
def __next__(self):
# get the result from the original __next__, but store it in DictInsensitive
dInsensitive = DictInsensitive()
dOriginal = super(DictReaderInsensitive, self).__next__()
# store all pairs from the old dict in the new, custom one
for key, value in dOriginal.items():
dInsensitive[key] = value
return dInsensitive
class DictInsensitive(dict):
# This class overrides the __getitem__ method to automatically strip() and lower() the input key
def __getitem__(self, key):
return dict.__getitem__(self, key.strip().lower())
मेरे समस्या यह है कि मैं यह त्रुटि
Traceback (most recent call last):
File "D:\Development\python\supplier_review\supplier_review.py", line 239, in update_ifs_data
for row in csvDict:
File "D:\Python27_5\lib\csv.py", line 103, in next
self.fieldnames
File "D:\Development\python\supplier_review\supplier_review.py", line 288, in fieldnames
return [field.strip().lower() for field in super(DictReaderInsensitive, self).fieldnames]
TypeError: must be type, not classobj
आपके सुझावों के लिए आप दोनों को धन्यवाद। मुझे इस समस्या के आसपास एक और रास्ता मिला लेकिन ईमानदार होने के लिए मुझे याद नहीं आया कि यह क्या था। मैंने मार्टिजन की कोशिश की लेकिन यह मेरे लिए काम नहीं किया। – PrestonDocks
मुझे खेद है कि मेरा समाधान आपके लिए काम नहीं करता है; क्या आपने मुझे बताया कि आपको किस समस्या का सामना करना पड़ा था, शायद मैं उन्हें दूर करने में आपकी मदद कर सकता था। जैसा कि आप मेरे उत्तर से देख सकते हैं मैंने आपके लिए कोड का परीक्षण किया। –