You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现API响应转DataFrame并导入SQLite表求助

解决将Pandas DataFrame导入SQLite表的问题

嘿,你已经搞定了调用API和转换DataFrame这两步,真的很棒!把DataFrame导入SQLite其实没那么复杂,咱们直接来解决这个瓶颈~

首先先把你截断的前两步代码补全(应该是把JSON数据转成DataFrame对吧),然后加上导入SQLite的部分,完整代码如下:

import csv
import pandas as pd
import requests
import sqlite3  # 新增导入sqlite3库

# 调用API并转换为DataFrame
data_request = requests.get('https://api.blockcypher.com/v1/eth/main/txs')
json_data = data_request.json()
df = pd.DataFrame(json_data)  # 补全你截断的代码

# 连接SQLite数据库——如果eth_transactions.db文件不存在,会自动在当前目录创建
conn = sqlite3.connect('eth_transactions.db')

# 将DataFrame写入名为eth_txs的SQLite表
# 参数说明:
# - if_exists='replace':如果表已经存在就替换掉,也可以选'append'追加数据或者'fail'报错
# - index=False:不要把DataFrame的索引列写入数据库表
df.to_sql('eth_txs', conn, if_exists='replace', index=False)

# 关闭数据库连接
conn.close()

更安全的写法:用上下文管理器自动管理连接

上面的写法需要手动关闭连接,万一忘记了可能会有问题,推荐用with语句来自动处理连接的打开和关闭:

import csv
import pandas as pd
import requests
import sqlite3

data_request = requests.get('https://api.blockcypher.com/v1/eth/main/txs')
json_data = data_request.json()
df = pd.DataFrame(json_data)

# with块结束后会自动关闭连接,不用手动调用close()
with sqlite3.connect('eth_transactions.db') as conn:
    df.to_sql('eth_txs', conn, if_exists='replace', index=False)

可能遇到的小问题及解决方法

如果导入时报错,大概率是DataFrame里有SQLite不支持的嵌套数据类型(比如某些列是字典或列表),这时候可以把这些列转换成JSON字符串再导入:

import csv
import pandas as pd
import requests
import sqlite3
import json

data_request = requests.get('https://api.blockcypher.com/v1/eth/main/txs')
json_data = data_request.json()
df = pd.DataFrame(json_data)

# 处理嵌套类型的列:把字典/列表转成JSON字符串
for col in df.columns:
    # 检查列里是否有字典或列表类型的数据
    if df[col].apply(type).isin([dict, list]).any():
        df[col] = df[col].apply(json.dumps)

# 再写入数据库
with sqlite3.connect('eth_transactions.db') as conn:
    df.to_sql('eth_txs', conn, if_exists='replace', index=False)

这样应该就能顺利把数据导入SQLite表啦!如果还有具体的报错信息,也可以再提出来细化解决~

内容的提问来源于stack exchange,提问作者user1599325

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:26:18