1

I have a JSON document that has been converted to a Python dictionary, and I need to get the values from the dictionary without having to type them one by one. Please look at the code below:

table_dict = {'column1' : ['1value1', '1value2', '1value3', '1value4', '1value5'],
              'column2' : ['2value1', '2value2', '2value3', '2value4', '2value5'],
              'column3' : ['3value1', '3value2', '3value3', '3value4', '3value5'],
              'column4' : ['4value1', '4value2', '4value3', '4value4', '4value5'],
              'column5' : ['5value1', '5value2', '5value3', '5value4', '5value5'],
             }#...
# How to do this for multiple roles with just a single statement.
sql_statement = ('INSERT INTO table_ (column1, column2, column3, column4, column5) VALUES
(1value1, 2value1, 3value1, 4value1, 5value1);')
df = pd.read_sql_query(sql_statement, container)

I am using GridDB Python client on a linux machine. If there is a way to achieve this by using a loop or something, please let me know.

1 Answers1

1

If I understand correctly, why don't you convert the dict into a dataframe and use the df.to_sql() function ?

or do you want it as text only ?

like this:

import pandas as pd
table_dict = {'column1' : ['1value1', '1value2', '1value3', '1value4', '1value5'],
              'column2' : ['2value1', '2value2', '2value3', '2value4', '2value5'],
              'column3' : ['3value1', '3value2', '3value3', '3value4', '3value5'],
              'column4' : ['4value1', '4value2', '4value3', '4value4', '4value5'],
              'column5' : ['5value1', '5value2', '5value3', '5value4', '5value5'],
             }
df=pd.DataFrame(table_dict)
'''
   column1  column2  column3  column4  column5
0  1value1  2value1  3value1  4value1  5value1
1  1value2  2value2  3value2  4value2  5value2
2  1value3  2value3  3value3  4value3  5value3
3  1value4  2value4  3value4  4value4  5value4
4  1value5  2value5  3value5  4value5  5value5

'''
df.to_sql('table_name','connection','if_exists......')

Bushmaster
  • 4,196
  • 3
  • 8
  • 28