You need to enable JavaScript to run this app. 使用Python调用巴西邮编API取数插入SQLite时参数绑定错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

使用Python调用巴西邮编API取数插入SQLite时参数绑定错误如何解决

问题原因分析
  • 方法使用错误:executemany()适用于批量插入多条数据,需要传入二维序列(比如嵌套列表/元组),你仅插入单条数据,直接使用execute()即可
  • 表结构不匹配:你需要插入10个指定字段,原建表语句仅定义了8个字段,还包含你不需要的validation、created字段,和实际需求完全不符
  • 参数数量不匹配:原插入语句写了8个占位符?,但仅传入了2个参数,绑定数量不一致直接触发报错
修复后完整代码
import requests
import sqlite3

CEPC = input("请输入邮编:")

print("正在查询邮编信息")
Requisicao = requests.get(f"https://viacep.com.br/ws/{CEPC}/json")

if Requisicao.status_code == 200:
    data = Requisicao.json()
    # 校验无效邮编,API返回无效邮编时会带erro字段
    if 'erro' in data:
        print("输入的邮编无效,请检查后重试")
    else:
        # 若要存储到Banco de dados文件夹,需要先手动创建该文件夹,否则直接用当前路径的CEPS.db即可
        con = sqlite3.connect("CEPS.db")
        cur = con.cursor()
        cur.execute("DROP TABLE IF EXISTS Requisicao")
        # 建表与需求的10个字段完全匹配
        cur.execute("""
            CREATE TABLE Requisicao (
                cep TEXT,
                logradouro TEXT,
                complemento TEXT,
                bairro TEXT,
                localidade TEXT,
                uf TEXT,
                ibge TEXT,
                gia TEXT,
                ddd TEXT,
                siafi TEXT
            )
        """)
        # 单条插入用execute,10个占位符对应10个字段值,数量完全匹配
        cur.execute(
            "insert into Requisicao values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
            (
                data["cep"],
                data["logradouro"],
                data["complemento"],
                data["bairro"],
                data["localidade"],
                data["uf"],
                data["ibge"],
                data["gia"],
                data["ddd"],
                data["siafi"]
            )
        )
        con.commit()
        con.close()
        print("数据插入成功")
else:
    print(f"请求失败,状态码:{Requisicao.status_code} ")
额外注意事项
  • 如果需要保留完整JSON串存储,可以在表中新增raw_json TEXT字段,插入时把JSON序列化后的值作为第11个参数传入即可
  • 若每次查询不需要清空旧表,可以删除cur.execute("DROP TABLE IF EXISTS Requisicao")语句,避免历史数据丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 23:21:01