Я импортирую из CSV и получаю данные примерно в формате
{ 'Field1' : 3000, 'Field2' : 6000, 'RandomField' : 5000 }
Имена полей динамические. (Что ж, они динамичны в том смысле, что их может быть больше, чем Field1 и Field2, но я знаю, что Field1
и Field2
всегда будут там.
Я хотел бы передать этот словарь в свой класс allMyFields
, чтобы я мог получить доступ к указанным выше данным как к свойствам.
class allMyFields:
# I think I need to include these to allow hinting in Komodo. I think.
self.Field1 = None
self.Field2 = None
def __init__(self,dictionary):
for k,v in dictionary.items():
self.k = v
#of course, this doesn't work. I've ended up doing this instead
#self.data[k] = v
#but it's not the way I want to access the data.
q = { 'Field1' : 3000, 'Field2' : 6000, 'RandomField' : 5000 }
instance = allMyFields(q)
# Ideally I could do this.
print q.Field1
Какие-либо предложения? Что касается того, почему - я хотел бы иметь возможность воспользоваться подсказками по коду, а импорт данных в словарь с именем data
, как я делал, не дает мне ничего из этого.
(Поскольку имена переменных не разрешаются до времени выполнения, мне все равно придется бросить кость Komodo - я думаю, что self.Field1 = None
должно быть достаточно.)
Итак - как мне делать то, что я хочу? Или я лаю на плохо спроектированное дерево без питона?
__init__
метода, чтобы найтиself.
переменные. Если говорить более фундаментально, то почему вы не используете для этого простойcsv.DictReader
и не создаете словари из каждой строки? - person S.Lott   schedule 28.10.2009