Parzer dokumentu CSV z listą transakcji i ich przechowywanie w BD
Transakcja {
Typ: TransactionType
Tytuł: Ticker
Data : Data
Ilość: Decimal
Cena : Price
Fee – cena ?
Enum TransactionType {
Case zakupy
Case sprzedać
W przypadku Fee
Przypadek split
Case podatek
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
• • • • • • • • • • • • • • • • • • • • • • • • •
dochodów {
Typ: IncomeType
Tytuł: Ticker
Źródło: Decimal
waluta: waluta
Data : Data
Wskaźnik: Decimal
IncomeType {
Podział przypadków
Przypadek Spinoff
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
• • • • • • • • • • • • • • • • • • • • •
Enum AssetCategory {
Case Stoje
Warrant przypadek
Opcja Case Option
Case waluta
Walutowy {
kod: String //USD, UAH, CAD itp
Ticker {
Symbol: String
waluta: waluta
Źródło: AssetCategory
Cena {
Wartość: Decimal
waluta: waluta
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
Opis dokumentu:
Dokument podzielony jest na segmenty.Te segmenty znajdują się w kolumnie-A, na przykład Trades, Corporate Actions, Transaction Fees, Dividends, Withholding Tax, Payment in Lieu of Dividend.- Rzadko, gdzie kolumna A == Trades i kolumna C == Trade opisują potrzebne transakcje typu buy lub sell
- Rzadko, gdy kolumna A == Corporate Actions i kolumna G contains "Split" opisują transakcje typu split
- Rzadko w kolumnie A == Corporate Actions i kolumnie G zawiera "Spinoff" opisuje dochód z typem spinoff
- Rzadko w kolumnie A == Transaction Fees lub Borrow Fee Detail lub Broker Interest Paid opisują Transaction z typem fee
- Rzadko w kolumnie A == Dividends lub Payment in Lieu of Dividend opisuje dochód z typem dividend, podatek dla tych obiektów należy wziąć w rzędach Withholding Tax
Wymagania :
1 .Wymagania UI nie istnieją, głównie do testowania i sprawdzania prawidłowości parsing wystarczy mieć przycisk do pobierania pliku, wyświetlić tabelę końcową z elementami Transaction i Income
2 .W tabeli pola muszą obsługiwać edycje, które użytkownik może wprowadzić do momentu przechowywania w BD
Потрібно написати простий парсер, який буде приймати CSV файл певного формату та витягувати звідти дані транзакцій та доходів, а потім виводити таблицю користувачу. Користувач матиме змогу поміняти в таблиці значення, після чого дані потрібно зберігти в БД. При додаванні наступних файлів, дані будуть додаватися до БД для цього користувача.
Приклад файлу доданий до проекту.
Псеводокод полів та типів полів таблиці Transaction, Income, які і є результатом парсингу.
//////////////////=====Transactions========/////////////////////
Transaction {
type: TransactionType
ticker: Ticker
date: Date
quantity: Decimal
price: Price
fee: Price?
}
enum TransactionType {
case buy
case sell
case fee
case split
case tax
}
////////////////////////////////////////////////////////////////////
//////////////////=====Incomes========/////////////////////
Income {
type: IncomeType
ticker: Ticker
amount: Decimal
currency: Currency
date: Date
tax: Decimal
}
IncomeType {
case dividend
case spinoff
}
////////////////////////////////////////////////////////////////////
//////////////////======General=======/////////////////////
enum AssetCategory {
case stock
case warrant
case option
case currency
}
Currency {
code: String //USD, UAH, CAD etc
}
Ticker {
symbol: String
currency: Currency
asset: AssetCategory
}
Price {
value: Decimal
currency: Currency
}
////////////////////////////////////////////////////////////////////
Опис документу:
- Документ поділений на сегменти. Ці сегменти вказані в колонці-A наприклад Trades, Corporate Actions, Transaction Fees, Dividends, Withholding Tax, Payment in Lieu of Dividend.
- Рядки, де колонка A == Trades та колонка С == Trade описують потрібний нам Transaction з типом buy чи sell
- Рядки, де колонка A == Corporate Actions та колонка G contains "Split" описує Transaction з типом split
- Рядки, де колонка A == Corporate Actions та колонка G contains "Spinoff" описує Income з типом spinoff
- Рядки, де колонка A == Transaction Fees або Borrow Fee Detail або Broker Interest Paid описують Transaction з типом fee
- Рядки, де колонка A == Dividends або Payment in Lieu of Dividend описують Income з типом dividend, tax для цих обʼєктів потрібно брати в рядках Withholding Tax
Вимоги:
1. Вимог до UI немає, в основному для тесту і перевірки правильності парсингу достатньо мати кнопку для завантаження файлу, показати кінцеву таблицю з елементами Transaction та Income
2. В таблиці поля мають підтримувати редагування, які користувач може внести до моменту зберігання в БД
- Проект має бути онлайн, тобто відкриватись в браузері та написаний на python
Załączniki 1
-
1168 7 0 Dzień dobry . Zapoznałem się z załączonym plikiem. Z takim formatem znaku, jego rozpoznanie nie powoduje trudności. Przygotuj się do pracy w Pythonie za pomocą ramy Django.
Добрий день. Я ознакомился с приложенным файлом. С таким форматом знаком, его разбор затруднений не вызывает. Готов выполнить на Python с применением фреймворка Django.
-
1096 25 4 1 Dzień dobry, skontaktuj się. Doskonałe doświadczenie zarówno w bazach danych, jak i w Parserach
Добрый день, обращайтесь. Большой опыт как в парсерах так и в базах данных
-
3027 74 0 Dzień dobry ! Myślę, że bez problemów realizuję potrzebny dla Ciebie prasyng. Pisz w prywatnym, porozmawiamy o projekcie szczegółowo.
Добрий день! Думаю без проблем реалізую потрібний вам прасинг. Пишіть в приватні, обговоримо проект детальніше.
-
2446 37 3 Dzień dobry, bez problemów mogę zrealizować taki system w kilku opcjach, mogę to zrobić za pośrednictwem strony w przeglądarce(strona), mogę to zrobić jako program desktopowy lub wdrożyć w telegramie botu.Cena i terminy w osobistej wiadomości.Zrobię to na python
Доброго дня, без проблем можу реалізувати таку систему в декількох варіаціях, можу зробити через сторінку в браузері(сайт), можу зробити як desktop программу, чи імплементувати в телеграм бота.Ціна і сроки в особисті повідомлення.Робити буду на python
Aktualne projekty freelancerskie w kategorii Parsowanie danych
Zebrać / Ręcznie skompilować maile firm z Google do tabeliDzień dobry! Potrzebuję zebrać przez Google tylko maile (bez nazw firm) 2500 agencji rekrutacyjnych w następujących krajach:Słowenia, Chorwacja, Węgry, Łotwa, Słowacja, Bułgaria, Rumunia, Mołdawia po 100 firm w każdejLitwa 300 firmCzechy 400 firmPolska 1000 firm Zapytania,… Parsowanie danych, Wyszukiwanie i zbieranie informacji ∙ 3 godziny 3 minuty temu ∙ 10 ofert |
Parsowanie bazy danych sprzedawców Prom.uaInteresują mnie takie dane: numer telefonu, e-mail, strona internetowa. Jestem zainteresowany gotową bazą lub parsowaniem nowej bazy. Rozważam różne opcje, piszcie w wiadomościach prywatnych z warunkami i kosztami pracy. Praca przez sejf, prowizję opłacam ja. Preferowane, aby… Parsowanie danych ∙ 22 godziny 28 minut temu ∙ 6 ofert |
Parsowanie ogłoszeń z serwisu ogłoszeniowego (z kontaktami)
91 PLN
Opis:Szukamy wykonawcy, który będzie w stanie regularnie dostarczać zrzuty danych z serwisu ogłoszeniowego.Sposób zbierania informacji (automatyzacja, ręczne zbieranie itp.) — według własnego uznania. Ważne jest dla nas otrzymywanie gotowych wyników: ogłoszeń z kontaktami.Co… Parsowanie danych ∙ 1 dzień 4 godziny temu ∙ 9 ofert |
Parsowanie 1688
364 PLN
Trzeba wyodrębnić kategorie Golarki elektryczne i części do golarek elektrycznych na stronie 1688, przy wyeksportowaniu do XML podłączyć tłumacza na język ukraiński i rosyjski. Parsowanie danych ∙ 1 dzień 4 godziny temu ∙ 11 ofert |
Potrzebne kontakty (bazy) budowniczych obwodu kijowskiegoPotrzebne bazy (kontakty) budowniczych w Kijowie i okolicach Kijowa. Za rozsądną cenę. Przyjmę zarówno gotowe, jak i możemy się umówić na parsowanie takich baz. Bazy danych i SQL, Parsowanie danych ∙ 1 dzień 4 godziny temu ∙ 5 ofert |