0

When i try to run the code i get error :

EmptyDataError Traceback (most recent call last) in 1 csv2 = StringIO(transactions) 2 csv2.seek(0) ----> 3 df2 = pd.read_csv(csv2, sep='\t') 4 print(df2)

6 frames /usr/local/lib/python3.7/dist-packages/pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.cinit()

EmptyDataError: No columns to parse from file

import random
from ntropy_sdk import SDK, Transaction
import pandas as pd


transactions = """description   amount  iso_currency_code
Aktywna Warszawa   S    21.07   PLN
Crv*Ww Beauty Lukasz Mich   18.83   PLN
Bolt.Eu/R/2207180715    96.34   EUR
Purchase from AMZN  3.64    EUR
## DEPOSIT  95.77   EUR
CARD TRANSACTION #69420 74.05   EUR
>> ^0_o^ << 64.97   EUR
Crypto.com: Allegro.pl gift card purchase   74.7    EUR
Paypal help ukraine donate  68.76   EUR
OPENPAY*CERVEZASIEMPRE CIUDAD DE MEXIC  26.47   USD
PAYPAL INST XFER MICROSOFT ACH_DEBIT    4.9 USD
Paypal *xsolla mtgarena 70.35   USD
M10GRAPHIC   CA venture capital call    27.71   USD
Compra Cart Elo Estacao Imperial Ltd    52.88   USD
PIERRE CARD IN  79.28   USD
twitch blizzard overwatch Mr Streamer   45.76   USD
Dep Transf Bdn Maria Jose Resende   46.07   USD
AMZN Mktp US AWS    85.94   USD
LATE FEE FOR PAYMENT DUE transbank  86.89   USD
ntropy api pmnt 1.84    USD
"""


def generate_random_string(length):
    return "".join(random.choice(ascii_lowercase + digits) for _ in range(length))


def df_from_csv(transactions=None):
    csv = StringIO(transactions)
    csv.seek(0)
    df = pd.read_csv(csv, sep='\t')
    txs = []

    account_name = generate_random_string() 

    for i, row in df.iterrows():
        tx = {
            "date": "2022-01-01",
            "entry_type": "outgoing",
            "amount": row['amount'],
            "iso_currency_code": row["iso_currency_code"],
            "description": row["description"],
            "transaction_id": f"id_{i}_{generate_random_string()}",
            "account_holder_type": "consumer",
            "account_holder_id": account_name,
        }
        txs.append(tx)

    return pd.DataFrame(txs)


sdk = SDK(api_key)

result = sdk.add_transactions(df_from_csv())
result = result[['description', 'amount', 'iso_currency_code', 'transaction_id', 'labels', "merchant", "website"]]

result
biGmazi
  • 11
  • 3

0 Answers0