[英]Python insert pandas series data in sql table
我正在尝试将数据插入数据类型为pandas.series.SO的sql表中,为此它给我报错ProgrammingError: ('Invalid parameter type. param-index=1 param-type=Series', 'HY105')
这是代码片段
import pandas as pd
from pandas.io.json import json_normalize
import pyodbc
import json
import numpy as np
cnxn = pyodbc.connect('server connection')
cursor = cnxn.cursor()
cursor.execute("select GEOCODE_ID, JSON from GEOCODE_TBL where JSON is NOT NULL AND GEOCODE_ID = 20")
ID=[]
JSON=""
for row in cursor.fetchall():
ID.append(row[0])
JSON=row[1]
data = json.loads(JSON)
result = json_normalize(data,'results')
def get_cols(st):
pol = []
for i in result['address_components'].apply(json_normalize):
pol.append(','.join(i.apply(lambda x : x['long_name'] if st in x['types'] else np.nan,1).dropna()))
return pol
result['country'] = get_cols('country')
result['room'] = get_cols('room')
result['premise'] = get_cols('premise')
sql = "UPDATE OTH_TBL SET GEOCODE_ID=?,country=?,room=?,premise=? where GEOCODE_ID=?"
param= (
int(ID[0]),
result['country'],
result['room'],
result['premise'],
int(ID[0])
)
cursor.execute(sql, params)
type(result['country'])
是pandas.core.series.Series AND type(ID[0])
是int
result['country']
Out[142]:
0 India
1 India
2 India
3 India
4 India
5 India
6 India
7 India
8 India
9 India
Name: country, dtype: object
有谁知道如何做到这一点。
谢谢..
DOMNICK
DataFrame.to_sql命令应该可以解决您的问题
文档在这里:
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.