sqlite3.接口错误:绑定参数 2 时出错 - 可能不支持的类型。这是重现错误的确切代码打开开发工具后转到此页面https://stats.nba.com/teams/boxscores-traditional/在 teamgamelogs 端点上右键单击 -> 复制 -> 复制为 curl(bash)转换为 python 请求 https://curl.trillworks.com/import pandas as pdimport requestsimport sqlite3response = requests.get('https://stats.nba.com/stats/teamgamelogs?DateFrom=&DateTo=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Base&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=Totals&Period=0&PlusMinus=N&Rank=N&Season=2019-20&SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&VsConference=&VsDivision=', headers=headers, cookies=cookies)conn = sqlite3.connect('nbastats.db')stats = response.json()df = pd.DataFrame(stats["resultSets"])df.to_sql('Team_stats', conn, if_exists='append')我不明白为什么我会收到此错误。sqlite3.InterfaceError: Error binding parameter 2 - probably unsupported type.
3 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
检查响应中返回的数据类型。众所周知,SQLite 3仅支持以下数据类型。
1)空。该值为 NULL 值。
2)整数。该值是一个有符号整数,存储在 1、2、3、4、6 或 8 个字节中,具体取决于值的大小。
3)真实。该值是一个浮点值,存储为 8 字节 IEEE 浮点数。
4)文本。该值是使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储的文本字符串。
5)斑点。该值是一个数据 blob,完全按照输入的方式存储。
参考资料 : https://www.sqlite.org/datatype3.html
哈士奇WWW
TA贡献1799条经验 获得超6个赞
我最终弄清楚了。
我的不同做事方式是使用API提供的.get_data_frames()[0]函数,然后我能够通过选择列表中的0位置来获得数据帧。这可以插入到数据库中。
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
我无法访问您引用的页面。尽管如此,在将数据从数据帧放入SQL之前,您需要先对其进行工程设计。检查数据类型:
df.dtypes()
如果第二列中有“对象”,则需要检查它是否是sql支持的类型。
添加回答
举报
0/150
提交
取消