Мне очень нравятся бравые парни считающих всех прочих кроме них самих в 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)