Someone? Please. On Sunday, July 19, 2015 at 6:02:13 PM UTC+3, Ivan Evstegneev wrote: > > > > <http://stackoverflow.com/questions/31501999/how-to-load-data-into-existing-database-tables-using-sqlalchemy?noredirect=1#> > > > I have my data loaded from excel files and organized as python dict where > each key is database table name and its value is defined as list of > dictionaries (the rows) > > > system_data = > > {table_name1:[{'col_1':val1, 'col2': val1...},{'col_1':val2, 'col2': > val2..}..], > table_name2:[{},{}..],[{},{}..]..} > > This data needs to be loaded into existing database while picking > table_names keys and values from system_data. > > Additionally I use ordered_table list which I've created in specific order > to avoid FK problems while data is being loaded. > > Here is the code (one of the 1000 versions I've tried): > > > from sqlalchemy import create_enginefrom sqlalchemy.sql import insert > def alchemy_load(): > system_data = load_current_system_data() > engine = > create_engine('mysql+pymysql://username:password@localhost/my_db') > conn = engine.connect() > for table_name in ordered_tables: > conn.execute(insert(table_name, system_data[table_name])) > print("System's Data successfully loaded into Database!") > > > This function yield a following error: > > "TypeError: 'method' object is not iterable" > > > > I've wasted almost all day on this stuff ((( > > All the online examples describe the situation when a user uses MetaData > and creates its own tables... There is nothing about how to actually add > data into existing tables. > > There is a solution to my problem using "dataset" library. > > > The code: > > > import dataset > def current_data(): > db = dataset.connect(url='mysql+pymysql://user:pass@localhost/my_db') > system_data = load_current_system_data() > > for table_name in ordered_tables: > db[table_name].insert_many(system_data[table_name]) > print("System's Data successfully loaded into Database!") > > BUT, I have no idea how to implement this code using sqlalchemy... > > > > Any help will be appreciated. >
-- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.