尝试在sqlite表上插入值时If-else语句出现问题

2024-09-29 00:18:25 发布

您现在位置:Python中文网/ 问答频道 /正文

你们今天怎么样?首先感谢大家在最后的问题中给予的支持,我真的很感激!我这里有一段代码,它从巴西zipcodesapi获取信息,我需要它来获取信息并将所有内容插入到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。我需要做的是检查给定的zipcode是否具有与API数据相同的信息,并通过检查我需要在表上创建一个名为“validation”的新列,如果信息相同,则需要用值“true”填充,如果不相同,则为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条件来做出验证决定,但我不知道怎么做。还有更好的办法吗


Tags: executedataconcepcurdddibgeuf