Vene4ka
@Vene4ka
Учусь программировать :>

Как занести массив в бд?

Есть массив, как его занести в бд?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@twister9886
Мне очень нравятся бравые парни считающих всех прочих кроме них самих в Python - начинающими из бывших работниками такси и сантехниками. Для таких правильных и умных ребят - единственный стандарт это Джанго. Эти парни с упоением будут напоминать про архитектуру БД, но ни один не решит вопрос и не даст пару-тройку рецептов и подсказок.

Может быть Захар руководитель среднего звена и предприниматель? Неважно.

Как занести массив в бд? Вариантов два
Первый, самый нетехнологичный, преобразовать массив в БД
# Print table definition
print """CREATE TABLE MY_TABLE(
	{0}
);""".format(",\n  ".join(map(lambda key: "{0} VARCHAR".format(key), keys)))

# Now, for all rows, print values
for row in data:
	print """INSERT INTO MY_TABLE VALUES({0});""".format(
		",".join(map(lambda key: "'{0}'".format(row[key]) if key in row else "NULL", keys)))


Второй - интереснее "Вытащите" и сделайте свой инстанс из from pandas.io.json import json_normalize, а потом подключитесь к БД запишите свой массив с помошью УДОБНОй вам, Захар, ОРМ. Суть решения - из вашего ассоциативного массива ключи нужны для filed таблиц. Что? Много ошибок по кодировке? Ну да и ладно. Можно не обязательно данные в Sql сохранять. Мда.. Цели-то, ваши, Захар, неясны.

Вот третий вариант - правильный - sqlalchemy - про него никто ни в этой ни в той ветке почему-то не упомянул. Так и тянут назойливо - учите архитектуру. С помошью sqlalchemy бережно и старательно создайте метаклассы исходя из вашего, Захар, набора данных из массива
Base = declarative_base()

class Category(Base):
	__tablename__  = 'category'
	category_id = Column(Integer, primary_key = True)
	restaurants = relationship('Restaurant', secondary = 'restaurant_category')
	name = Column(String(250), nullable = False)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bacon
С такой постановкой вопроса - никак.
ЗЫ и перестань повторят вопросы Как записать элемент массива в бд? за этом можно в жбан получить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы