首页 > 解决方案 > 尝试在 sqlite 表上插入值时出现 If else 语句的问题

问题描述

你们今天过得怎么样?首先感谢大家对最后几个问题的支持,非常感谢!我在这里有这段代码,它从巴西邮政编码 API 获取信息,我需要获取信息并将所有内容插入到 sqlite 表中。一切正常,但我不知道如何使用 if else 语句来做一些事情,还有另一种方法吗?这是代码:

import requests
import sqlite3
import json

CEPC = input("Please type the zipcode:")

print("Identifying the ZIP CODE")

Requisicao = requests.get(f"https://viacep.com.br/ws/{CEPC/json22)

if Requisicao.status_code == 200:
data = Requisicao.json()
# Database
con = sqlite3.connect("CEPS.db")
cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS Requisicao")
cur.execute("CREATE TABLE Requisicao (cep, logradouro, complemento, bairro, localidade, 
uf, ibge, gia, ddd, siafi )")
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']))
addColumn = "ALTER TABLE Requisicao ADD COLUMN Validation"
cur.execute(addColumn)
con.commit()
cur.execute("SELECT * FROM Requisicao");
rows = cur.fetchall()
print(rows)
con.close()
else:
print(f"Request failed with status code {Requisicao.status_code} ")

它创建一个包含以下列的表:cep、logradouro、complemento、bairro、localidade、uf、ibge、gia、ddd、siafi。我需要做的是检查给定的邮政编码是否在 API 数据上具有相同的信息,并检查我是否需要在表上创建一个名为“验证”的新列,并且它需要填充值“真” " 如果信息相同,则为 false,如果不同,则应为布尔值。我还需要在进行验证时创建另一列,并使用以下格式填充它:DD-MM-YY HH:mm:ss。邮政编码的输出是:

{
 "cep": "01001-000",
 "logradouro": "Praça da Sé",
 "complemento": "lado ímpar",
 "bairro": "Sé",
 "localidade": "São Paulo",
 "uf": "SP",
 "ibge": "3550308",
 "gia": "1004",
 "ddd": "11",
 "siafi": "7107"
}

它是一种 JSON 格式。所以我的想法是创建一个 else if 条件来对验证做出这些决定,但我不知道该怎么做。还有更好的方法吗?

标签: pythonsqlpython-3.xapisqlite

解决方案


推荐阅读