Behandeln Sie ungültige Codierungssequenzen in CSV mit PolarenPython

Python-Programme
Guest
 Behandeln Sie ungültige Codierungssequenzen in CSV mit Polaren

Post by Guest »

Betrachten Sie den folgenden Snippet: < /p>

Code: Select all

from io import TextIOWrapper, BytesIO
import polars as pl
import pandas as pd

csv_str = (
b"spam,egg\n"
+ "spam,œuf\n".encode("cp1252")
+ "spam,αυγό\n".encode("utf8")
)
content = BytesIO(csv_str)
wrapped = TextIOWrapper(content, errors="replace")

try:
df = pl.read_csv(wrapped)
except Exception as e:
print("polars failed!")
print(e)

wrapped.seek(0)

try:
df = pd.read_csv(wrapped, sep=",")
except Exception as e:
print("pandas failed!")
print(e)

Sie haben dort eine ungültige CSV-Datei erhalten, die schlecht ist, mit zwei unterschiedlichen Kodierungen. Seltsamerweise ist dies immer noch ein reales Problem, und zwar ein zu häufiges.
Mit Pandas können Sie dies entweder über den TextIOWrapper oder das eingebaute Argument „encoding_errors“.
Fragen:
  • Warum funktioniert das nicht mit Polaren< /code>, wenn man bedenkt, dass der TextIOWrapper damit umgehen sollte Eingabe als Stream?
  • Gibt es eine Möglichkeit, dies nativ mit Polaren zu handhaben (ich meine eine andere Möglichkeit, als es mit Pandas zu lesen und es dann mit Polaren zu konvertieren). .from_pandas)?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post