Инструменты пользователя

Инструменты сайта


python:parsers:postgres_peewee

postgres peewee

import csv
 
#ORM для бд
from peewee import *
 
 
#Установка соединения
db = PostgresqlDatabase(database='test', user='postgres', password='2619192', host='db')
 
# Описание таблички coin
class Coin(Model):
    # Поля таблицы
    name = CharField()
    url = TextField()
    price = CharField()
 
def main():
    # соединение с бд
    db.connect()
    # Создаем табличку, внутрь передается список таблиц которые надо создать
    db.create_tables([Coin])
 
    # Открываем csv файл на чтение
    with open('cmc.csv') as f:
        order = ['name', 'url', 'price']
        reader = csv.DictReader(f, fieldnames=order)#Приводим данные к словарю
 
        coins = list(reader)
 
        # альтернативный способ записи
        # for row in coins:
            # coin = Coin(name=row['name'], url=row['url'], price=row['price'])
            # coin.save()
        # Использовать транзакцию atomic
        with db.atomic():
 
 
            # for row in coins:
            #     Coin.create(**row) #именованные аргументы передаются в виде словаря
 
            # обходим словарики с шагом 100
            for index in range(0, len(coins), 100):
                # На первой итерации берем от 0 до 100
                Coin.insert_many(coins[index:index+100]).execute()
 
 
if __name__ == '__main__':
    main()
python/parsers/postgres_peewee.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)