为了账号安全,请及时绑定邮箱和手机立即绑定

在将数据帧写入 sqlite 数据库时遇到问题

在将数据帧写入 sqlite 数据库时遇到问题

烙印99 2022-08-02 18:43:00
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


查看完整回答
反对 回复 2022-08-02
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

我最终弄清楚了。

我的不同做事方式是使用API提供的.get_data_frames()[0]函数,然后我能够通过选择列表中的0位置来获得数据帧。这可以插入到数据库中。


查看完整回答
反对 回复 2022-08-02
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我无法访问您引用的页面。尽管如此,在将数据从数据帧放入SQL之前,您需要先对其进行工程设计。检查数据类型:

 df.dtypes()

如果第二列中有“对象”,则需要检查它是否是sql支持的类型。


查看完整回答
反对 回复 2022-08-02
  • 3 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信