<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.

Reply via email to