У меня проблемы с получением данных в форме, которую я хотел бы получить на python.
В основном у меня есть программа, которая читает двоичные данные и предоставляет функции для построения и анализа указанных данных.
Мои данные имеют основные заголовки, а затем подзаголовки, которые могут иметь любое количество различных типов данных.
Я хотел бы иметь возможность доступа к моим данным, например:
>>> a = myDatafile.readit()
>>> a.elements.hydrogen.distributionfunction
(a big array)
>>> a.elements.hydrogen.mass
1
>>> a.elements.carbon.mass
12
но я не знаю имен атомов до времени выполнения.
Я попытался использовать namedtuple, например, после того, как прочитал все имена атомов:
self.elements = namedtuple('elements',elementlist)
Где elementlist - это список строк, например («водород», «углерод»).Но проблема в том, что я не могу вложить их, например:
for i in range(0,self.nelements):
self.elements[i] = namedtuple('details',['ux','uy','uz','mass','distributionfunction'])
, а затем получить доступ к значениям, например,
self.elements.electron.distributionfunction.
Может быть, я делаю это полностьюнеправильно.Я довольно неопытен с питоном.Я знаю, что это было бы легко сделать, если бы меня не беспокоили динамические имена переменных.
Надеюсь, я ясно дал понять, чего пытаюсь достичь!