|
Python. Аналог ассоциативных массивов
|
|||
---|---|---|---|
#18+
Здравствуйте. Выносим бизнес-логику из процедур БД ORACLE в Python-скрипты, есть вопрос. В ORACLE у нас есть тип данных, по сути являющийся ассоциативным массивом, пример: namevaluetypesourcedatetime city Moscowchar112.05.2020 23:25:24 user Ivanchar222.03.1988 02:56:41 summa 25000num201.12.2020 14:23:25 age 32num114.10.2018 10:23:45 То есть, есть набор переменных (в примере это city, user, summa, age) и N-ное количество (фиксированное количество с фиксированным типом данных) атрибутов каждой из этих переменных. Данные хранятся в оперативной памяти, и доступ осуществляется по индексу name. Доступ к атрибутам каждой из переменных осуществляется следующим образом: Код: plsql 1. 2. 3. 4. 5.
Какой тип данных или конструкция в Python максимально подходит для решения этой задачи? На текущий момент наиболее подходящим мне кажутся Словари (Dict) . Единственное, классический словарь это пара ключ-значение, и в моем случае, когда значений N-ное количество, наверное нужен многомерный словарь. То есть, мой пример будет выглядеть следующим образом: Код: python 1. 2. 3. 4. 5.
Структура будет иметь вид: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Доступ к атрибуту переменной: Код: python 1.
В правильном ли направлении я иду, и нет ли более подходящего для этих целей типа данных? Из явных отличий которые я вижу, это то, что типы данных для атрибутов не фиксированы, а также набор атрибутов не фиксирован (по ошибке можно внести ерунду, в то время как сейчас это сделать не получится). Также, работа с типом кажется более громоздкой Буду благодарен за критические мнения ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 14:59 |
|
Python. Аналог ассоциативных массивов
|
|||
---|---|---|---|
#18+
прежде, чем писать свой ORM, я бы советовала начать с использования стандартног питоновского ORM, там все что вы хотите уже реализованно стандартный питоновский ORM SQLAlchemy https://www.sqlalchemy.org/ в джанго свой встроенный ORM все зависит от того, что и как вы собираетесь делать и что использовать если стандартный ORM вам не подойдет, то вы получите представление о том как это уже реализовано, и как это адаптировать под себя ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2020, 15:21 |
|
|
start [/forum/topic.php?fid=23&msg=39958969&tid=1459683]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 249ms |
total: | 376ms |
0 / 0 |