#sql #json #python-3.x #database #web-scraping
Вопрос:
import requests
import certifi
import json
import sqlite3
conn = sqlite3.connect('covidallocationsdb.sqlite')
cur = conn.cursor()
Мне удалось успешно создать таблицы с нужным форматом, в другой версии я удалил строку идентификатора, все еще вызывая у меня ту же проблему.
cur.executescript('''
DROP TABLE IF EXISTS Jurisdictions;
DROP TABLE IF EXISTS Allocations;
DROP TABLE IF EXISTS Dose;
DROP TABLE IF EXISTS Complete;
CREATE TABLE Jurisdictions (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
state TEXT UNIQUE
);
CREATE TABLE Allocations (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
week TEXT UNIQUE
);
CREATE TABLE Dose (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
amount TEXT UNIQUE
);
CREATE TABLE Complete (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
state TEXT UNIQUE,
week TEXT UNIQUE,
amount TEXT UNIQUE
)
''')
url = 'https://data.cdc.gov/api/views/w9zu-fywh/rows.json'
r = requests.get(url)
content = json.loads(r.text)
for v in content['data']:
juri = v[8];
woa = v[9];
firdos = v[10];
print((juri, woa, firdos))
Я могу извлечь данные из файла json, но не могу добавить их в базу данных.
cur.execute('''INSERT OR IGNORE INTO Jurisdictions (state)
VALUES ( ? )''', ( juri, ) )
cur.execute('''INSERT OR IGNORE INTO Allocations (week)
VALUES ( ? )''', ( woa, ) )
cur.execute('''INSERT OR IGNORE INTO Dose (amount)
VALUES ( ? )''', ( firdos, ) )
cur.execute('''INSERT OR IGNORE INTO Complete (state, week, amount)
VALUES ( ?, ?, ? )''', ( juri, woa, firdos ) )
conn.commit
print(cur.fetchall())
Какую ошибку я совершаю, которая не позволяет мне вставлять данные в sqlite, является ли это вставкой или ограничениями, которые я поместил в значения. Я застрял на довольно долгое время, и это абсолютно расстраивает.