Здесь я прочитал другие вопросы по SQLite, но, к сожалению, не смог докопаться до сути моего вопроса (часть 1, то есть).
Итак, мой вопрос состоит из 2 частей:
(1) Я пытаюсь получить данные из текстового файла, разделенного запятыми, в базу данных SQLite с помощью модуля python sqlite3. Мой попытанный код приведен ниже - хотя я получаю сообщение об ошибке, в котором говорится, что «параметры неподдерживаемого типа» - я предполагаю, что это означает, что способ, которым я определил мои параметры, неверен (учитывая, что некоторые содержат как буквы, так и цифры), хотя я Я поиграл с несколькими форматами и, похоже, не смог подобрать правильную комбинацию
Пример URL: http://prod1.publicdata.landregistry.gov.uk.s3 -website-eu-west-1.amazonaws.com / pp-month-update.txt
Пример кода:
# Connect to the database (or create if it doesn't exit)
conn = sqlite3.connect("LandRegistry.db")
# Define the cursor
c = conn.cursor()
# Create a table
def create_table():
c.execute("""CREATE TABLE IF NOT EXISTS PricePaidData(
unique_ID TEXT,
price_paid INT,
deed_date TEXT,
postcode TEXT,
property_type TEXT,
new_build TEXT,
estate_type TEXT,
address_1 TEXT,
address_2 TEXT,
address_3 TEXT,
address_4 TEXT,
address_5 TEXT,
address_6 TEXT,
address_7 TEXT,
transaction_category_1 TEXT,
transaction_category_2 TEXT)""")
# Populate the database
def update_table():
url = "http://prod1.publicdata.landregistry.gov.uk.s3-website-eu-west-1.amazonaws.com/pp-monthly-update.txt"
data = urllib.request.urlopen(url).read()
c.executemany("""INSERT INTO PricePaidData (
unique_ID,
price_paid,
deed_date,
postcode,
property_type,
new_build,
estate_type,
address_1,
address_2,
address_3,
address_4,
address_5,
address_6,
address_7,
transaction_category_1,
transaction_category_2) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);""", data)
conn.commit()
create_table()
update_table()
c.close()
conn.close()
(2) Не уверен, что это подходящее место для постановки этого вопроса - но я также хотел бы сопоставить адреса отсюда (я думаю, что почтовые индексы наиболее полезны при этом) к регионам NUTS1 (как определено в ссылка ниже). В предыдущем вопросе упоминался пакет R, который может быть полезен здесь - я бы предпочел сделать это на Python. Я полагаю, что наилучшим способом сделать это было бы (а) загрузить ссылку прекодных почтовых индексов в каждой области NUTS (в csv?), (Б) запустить какой-то поиск первых 2 букв почтового кода в SQLite базы данных в NUTS CSV и вернуть соответствующий регион в отдельном столбце. Буду признателен за любые указания на то, как я могу это сделать!
NUTS1 регионов: https://en.wikipedia.org/wiki/NUTS_1_statistical_regions_of_England
Заранее всем спасибо!