Fara

Fara gina aikace-aikace masu aminci tare da Mai nazarin bayanin banki

Buƙatu

Shigarwa

pip install bankstatementparser

Don tallafin Polars DataFrame:

pip install bankstatementparser[polars]

Farawa Cikin Sauri

Gano Ta Atomatik Da Bincika Kowane Tsari

from bankstatementparser import create_parser, detect_statement_format

fmt = detect_statement_format("transactions.ofx")
parser = create_parser("transactions.ofx", fmt)
df = parser.parse()  # pandas DataFrame
print(df.head())

Wannan yana aiki tare da fayilolin .xml (CAMT/PAIN.001), .csv, .ofx, .qfx, .mt940, da .sta.

Bincika CAMT.053

from bankstatementparser import CamtParser

parser = CamtParser("statement.xml")
transactions = parser.parse()

Bincika PAIN.001

from bankstatementparser import Pain001Parser

parser = Pain001Parser("payment.xml")
payments = parser.parse()

Streaming Manyan Fayiloli

Don fayiloli masu ma'amaloli dubbai, yi amfani da streaming don kiyaye ƙwaƙwalwar ajiya mai iyaka:

parser = CamtParser("large_statement.xml")
for transaction in parser.parse_streaming(redact_pii=True):
    process(transaction)  # Ƙwaƙwalwar ajiya tana daidaita

Bincike Cikin Ƙwaƙwalwa

Bincika daga bytes ba tare da rubutu zuwa faifai ba -- mai amfani don hanyoyin SFTP ko API:

xml_bytes = download_from_sftp()
parser = CamtParser.from_bytes(xml_bytes, source_name="daily.xml")
transactions = parser.parse()

Sarrafa Fayiloli A Layi Ɗaya

Bincika fayiloli da yawa a lokaci guda:

from bankstatementparser import parse_files_parallel

results = parse_files_parallel([
    "statements/jan.xml",
    "statements/feb.xml",
    "statements/mar.xml",
])
for r in results:
    print(r.path, r.status, len(r.transactions), "rows")

Cire Kwafi

Gano kwafi daidai da abin da ake zargi tare da ƙimar amincewa:

from bankstatementparser import CamtParser, Deduplicator

parser = CamtParser("statement.xml")
dedup = Deduplicator()
result = dedup.deduplicate(dedup.from_dataframe(parser.parse()))

print(f"Na musamman: {len(result.unique_transactions)}")
print(f"Kwafi daidai: {len(result.exact_duplicates)}")
print(f"Abin da ake zargi: {len(result.suspected_matches)}")

Sarrafa ZIP Mai Tsaro

Sarrafa fayilolin XML masu ZIP tare da binciken tsaro da aka gina ciki (kariya daga bam, ƙin shigarwar da aka ɓoye):

from bankstatementparser import iter_secure_xml_entries, CamtParser

for entry in iter_secure_xml_entries("statements.zip"):
    parser = CamtParser.from_bytes(entry.xml_bytes, source_name=entry.source_name)
    print(f"{entry.source_name}: {len(parser.parse())} ma'amaloli")

Fitarwa

parser = CamtParser("statement.xml")
parser.export_csv("output.csv")
parser.export_json("output.json")

# Polars (yana buƙatar bankstatementparser[polars])
polars_df = parser.to_polars()

Amfani Da CLI

# Bincika da nuna
python -m bankstatementparser.cli --type camt --input statement.xml

# Fitar zuwa CSV
python -m bankstatementparser.cli --type camt --input statement.xml --output transactions.csv

# Stream tare da PII a bayyane
python -m bankstatementparser.cli --type camt --input statement.xml --streaming --show-pii

Zaɓuɓɓukan CLI:

Saita Ci Gaban Gida

git clone https://github.com/sebastienrousseau/bankstatementparser.git
cd bankstatementparser
python3 -m venv .venv && source .venv/bin/activate
pip install poetry && poetry install --with dev

Gudanar da jerin gwaje-gwaje:

pytest

Nassoshi API

Ajin Mai Bincike

Aji Tsari Shigo Da
CamtParser CAMT.053 (ISO 20022) from bankstatementparser import CamtParser
Pain001Parser PAIN.001 (ISO 20022) from bankstatementparser import Pain001Parser
CsvStatementParser CSV from bankstatementparser import CsvStatementParser
OfxParser OFX from bankstatementparser import OfxParser
QfxParser QFX from bankstatementparser import QfxParser
Mt940Parser MT940 from bankstatementparser import Mt940Parser

Ayyukan Amfani

Aiki Manufa
detect_statement_format(path) Gano tsarin fayil ta atomatik
create_parser(path, fmt) Ƙirƙira mai binciken da ya dace
parse_files_parallel(paths) Bincika fayiloli da yawa a lokaci guda
iter_secure_xml_entries(zip_path) Bincika shigarwar ZIP cikin tsaro

Ajin Bayanai

Aji Manufa
Deduplicator Gano kwafin ma'amaloli
DeduplicationResult Sakamako tare da na musamman, daidai, da abin da ake zargi
InputValidator Tabbatar da hanyoyin fayil da tsari
Transaction Bayanan ma'amala masu daidaituwa
FileResult Sakamako daga bincike a layi ɗaya
ZipXMLSource Ɓangaren ZIP

Kurakurai

Kuskure Lokacin Da Ake Haddasa
ParserError Gazawar bincike
ExportError Gazawar fitarwa (CSV/JSON/Excel)
ValidationError Gazawar tabbatar da shigarwa
ZipSecurityError Gazawar binciken tsaron ZIP