将 Python 字典用于 SQL INSERT 语句 CX_ORACLE
Using a Python dict for a SQL INSERT statement for CX_ORACLE
将字典转换为 SQL 为 Python 中的 cx_Oracle
驱动程序插入
custom_dictionary= {'ID':2, 'Price': '7.95', 'Type': 'Sports'}
我需要制作动态代码 sql 从自定义字典插入 cx_Oracle
驱动程序
con = cx_Oracle.connect(connectString)
cur = con.cursor()
statement = 'insert into cx_people(ID, Price, Type) values (:2, :3, :4)'
cur.execute(statement, (2, '7.95', 'Sports'))
con.commit()
如果您要插入一组已知的列,只需使用带有命名参数的 insert
并将字典传递给 execute()
方法。
statement = 'insert into cx_people(ID, Price, Type) values (:ID, :Price, :Type)'
cur.execute(statement,custom_dictionary)
如果列是动态的,使用键和参数构造 insert
语句
把它变成类似 execute
cols = ','.join( list(custom_dictionary.keys() ))
params= ','.join( ':' + str(k) for k in list(custom_dictionary.keys()))
statement = 'insert into cx_people(' + cols +' ) values (' + params + ')'
cur.execute(statement,custom_dictionary)
您可以使用 pandas.read_json
方法通过 dataframe
迭代列表转换值:
import pandas as pd
import cx_Oracle
con = cx_Oracle.connect(connectString)
cursor = con.cursor()
custom_dictionary= '[{"ID":2, "Price": 7.95, "Type": "Sports"}]'
df = pd.read_json(custom_dictionary)
statement='insert into cx_people values(:1,:2,:3)'
df_list = df.values.tolist()
n = 0
for i in df.iterrows():
cursor.execute(statement,df_list[n])
n += 1
con.commit()
将字典转换为 SQL 为 Python 中的 cx_Oracle
驱动程序插入
custom_dictionary= {'ID':2, 'Price': '7.95', 'Type': 'Sports'}
我需要制作动态代码 sql 从自定义字典插入 cx_Oracle
驱动程序
con = cx_Oracle.connect(connectString)
cur = con.cursor()
statement = 'insert into cx_people(ID, Price, Type) values (:2, :3, :4)'
cur.execute(statement, (2, '7.95', 'Sports'))
con.commit()
如果您要插入一组已知的列,只需使用带有命名参数的 insert
并将字典传递给 execute()
方法。
statement = 'insert into cx_people(ID, Price, Type) values (:ID, :Price, :Type)'
cur.execute(statement,custom_dictionary)
如果列是动态的,使用键和参数构造 insert
语句
把它变成类似 execute
cols = ','.join( list(custom_dictionary.keys() ))
params= ','.join( ':' + str(k) for k in list(custom_dictionary.keys()))
statement = 'insert into cx_people(' + cols +' ) values (' + params + ')'
cur.execute(statement,custom_dictionary)
您可以使用 pandas.read_json
方法通过 dataframe
迭代列表转换值:
import pandas as pd
import cx_Oracle
con = cx_Oracle.connect(connectString)
cursor = con.cursor()
custom_dictionary= '[{"ID":2, "Price": 7.95, "Type": "Sports"}]'
df = pd.read_json(custom_dictionary)
statement='insert into cx_people values(:1,:2,:3)'
df_list = df.values.tolist()
n = 0
for i in df.iterrows():
cursor.execute(statement,df_list[n])
n += 1
con.commit()