Форум программистов, компьютерный форум, киберфорум
Python: Flask
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 13.06.2022
Сообщений: 4

Не удаётся переписать данные из csv файла в бд с использованием PostreSQL

13.06.2022, 22:48. Показов 1177. Ответов 2

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пытаюсь из csv файла записать денные в бд. Использую PostgreSQL. Однако при выполнении кода срабатывает ошибка:
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) ОШИБКА: отношение "weather" не существует
LINE 1: INSERT INTO weather (id, year, month, day, day_half, tempera...

Уже очень долго не могу её решить, так как мне кажется, что я создаю эту таблицу с названием weather.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config
import csv
import psycopg2
 
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = config['DATABASE']['URI']
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
 
conn = psycopg2.connect(database="weather",
                        user='postgres', password='1234567',
                        host='127.0.0.1', port='5432'
)
 
 
# from userApp.database import *
db.create_all()
 
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS public.weather
(
    id integer NOT NULL,
    year integer,
    month character varying(10) COLLATE pg_catalog."default",
    day character varying(10) COLLATE pg_catalog."default",
    day_half character varying(5) COLLATE pg_catalog."default",
    temperature character varying(10) COLLATE pg_catalog."default",
    bar character varying(10) COLLATE pg_catalog."default",
    cloudy character varying(20) COLLATE pg_catalog."default",
    phenomena character varying(20) COLLATE pg_catalog."default",
    wind_direction character varying(2) COLLATE pg_catalog."default",
    wind_speed character varying(10) COLLATE pg_catalog."default",
    CONSTRAINT tabel_pkey PRIMARY KEY (id)
)
 
TABLESPACE pg_default;
 
ALTER TABLE IF EXISTS public.tabel
    OWNER to postgres;""")
 
 
class weather(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    year = db.Column(db.Integer)
    month = db.Column(db.String(10))
    day = db.Column(db.String(10))
    day_half = db.Column(db.String(5))
    temperature = db.Column(db.String(10))
    bar = db.Column(db.String(10))
    cloudy = db.Column(db.String(20))
    phenomena = db.Column(db.String(20))
    wind_direction = db.Column(db.String(2))
    wind_speed = db.Column(db.String(10))
 
    # def __repr__(self):
    #     return '<weather %r>' % self.id
    @property
    def serialize(self):
        return {
            'id': self.id,
            'year': self.year,
            'month': self.month,
            'day': self.day,
            'day_half': self.day_half,
            'temperature': self.temperature,
            'bar': self.bar,
            'cloudy': self.cloudy,
            'phenomena': self.phenomena,
            'wind_direction': self.wind_direction,
            'wind_speed': self.wind_speed
        }
 
 
# Читаем CSV
with open('weather.csv', 'r', newline='', encoding='UTF-8') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    # Пропуск заголовка
    next(reader)
    id_num=0
    for row in reader:
        # Создаем объект класса БД
        flight = weather(id=id_num,year=row[0], month=row[1],
                         day=row[2], day_half=row[3],
                         temperature=row[4], bar=row[5],
                         cloudy=row[6], phenomena=row[7],
                         wind_direction=row[8], wind_speed=row[9])
        # Добавляем объект к сессии
        db.session.add(flight)
        # Записываем изменения в БД
        db.session.commit()
        id_num += 1
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2022, 22:48
Ответы с готовыми решениями:

Не удается справиться с кодировкой при выгрузке в базу csv-файла
Доброго дня! Имеется CSV-файл с данными для записи в базу. Читается он через fgetcsv. затем выделяются поля через explode и все это дело...

Почему данные приходят с типом memoryview из postresql
Здравствуйте, хочу достать из БД pg и столбца data данные типа...

Данные из файла в CSV
Всем привет. Прошу помощи в решении такой проблемы. Есть недо-html файл (см вложение). Как таблицу из этого файла передать в csv?...

2
Эксперт по компьютерным сетям
 Аватар для Jabbson
5906 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
14.06.2022, 05:55
а схема по умолчанию какая для постгреса? потому что таблица, что Вы создаете - она в public. А поиск - тоже происходит в public?
1
0 / 0 / 0
Регистрация: 13.06.2022
Сообщений: 4
14.06.2022, 06:59  [ТС]
Я не знаю, какая схема используется для поиска... Можете подсказать, как мне это узнать?

Добавлено через 7 минут
Я не знаю, какая схема используется для поиска... Можете подсказать, как мне это узнать? Это надо где-то в коде смотреть?
(Сори ещё не полностью разобралась с функционалом форума)

Добавлено через 38 минут
Всё, нашла решение своей проблемы.
1) Немного исправила создание таблицы:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cur.execute("""CREATE TABLE public.weather
(
    year integer,
    month character varying(10),
    day integer,
    day_half character varying(5),
    temperature character varying(10),
    bar character varying(10),
    cloudy character varying(20),
    phenomena character varying(20),
    wind_direction character varying(10),
    wind_speed character varying(10),
    id integer NOT NULL,
    PRIMARY KEY (id)
);
 
ALTER TABLE IF EXISTS public.weather
    OWNER to postgres;""")
2) На 16 строчке добавила строку con.autocommit = True
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2022, 06:59
Помогаю со студенческими работами здесь

Вам доступен csv файл data.csv, содержащий информацию в csv формате.Напишите функцию read_csv для чтения данных из файла
Вам доступен CSV-файл data.csv, содержащий информацию в csv формате. Напишите функцию read_csv для чтения данных из этого файла. Она должна...

Вывести данные из csv файла
нужно вывести данные из csv файла про здания срок эксплуатации, которых больше 50 лет

Файл: Переписать первые 3 строки первого файла во второй и наоборот с использованием вспомогательного файла
Создать папку, в папке два файла, записать в файлы текст с одинаковым числом строк. Закрыть файл. Открыть файлы, переписать первые 3 строки...

Как читать данные из CSV файла?
Кто нибудь знает как считать таблицу из CSV файла расположенного на удаленном сервере (FTP)?

обносить данные на листе из csv файла
Привет, есть два файла - xls с формулами и файл данных в формате csv, csv файл периодически перезаписывается, хотелось бы иметь возможность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru