StringIO() takes at most 2 arguments (3 given) Python, а нужно указать 3 параметра

У меня закачивается csv файл через кнопку в приложении plotly dash. строка чтения файла у меня:

csv_file = pd.read_csv(io.StringIO(decoded.decode('utf-8'), sep = ';',parse_dates=["колонка_с_датой_в_csv"]))

Но при запуске кода у меня выходит данная ошибка в cmd:

StringIO() takes at most 2 arguments (3 given)

Подскажите, как решить проблему, так как 3 аргумента мне нужны для чтения файла.


Ответы (1 шт):

Автор решения: Эникейщик

Вам, может, и нужны три аргумента, а StringIO нужны максимум два. Нужно быть внимательнее в расстановке скобок и в том, какие аргументы в какую функцию передаются

csv_file = pd.read_csv(io.StringIO(decoded.decode('utf-8'), sep = ';'), parse_dates=["колонка_с_датой_в_csv"])
# ...................................................................^

PS. Лично я разделил бы на две строчки, чтобы было легче читать и понимать. Да и со скобками тогда сложнее запутаться.

data = io.StringIO(decoded.decode('utf-8'), sep = ';')
csv_file = pd.read_csv(data, parse_dates=["колонка_с_датой_в_csv"])
→ Ссылка