В конечном счете, проблема, с которой я столкнулся, заключается в том, что я не уверен, что мне нужно сделать с загруженным файлом, чтобы затем поместить его в мою функцию getData, которая читает файл с помощью rdsr_navigator и pydicom. Я понимаю, что файл кодируется при загрузке и что переменная декодирует его, но из других примеров я вижу, что затем необходимо произвести дальнейшие манипуляции с декодированным файлом. Например, для чтения файлов .csv и .xls с помощью pd.read_csv над декодированной переменной необходимо проделать следующие манипуляции с использованием функций из библиотеки io:
Код: Выделить всё
# Assume that the user uploaded a CSV file
df = pd.read_csv(
io.StringIO(decoded.decode('utf-8')))
Код: Выделить всё
# Assume that the user uploaded an excel file
df = pd.read_excel(io.BytesIO(decoded))
Код: Выделить всё
Unsupported type. Supported types: str, pathlib.Path, or pydicom.dataset.FileDataset
Код: Выделить всё
def parse_contents(contents, filename, date):
content_type, content_string = contents.split(',')
decoded = base64.b64decode(content_string)
global df
df = getData.getData(decoded)
@app.callback(Output('output-data-upload', 'children'),
Input('upload-data', 'contents'),
State('upload-data', 'filename'),
State('upload-data', 'last_modified'),prevent_initial_call=True)
def update_output(list_of_contents, list_of_names, list_of_dates):
if list_of_contents is not None:
children = [parse_contents(list_of_contents, list_of_names, list_of_dates)]
return children
Код: Выделить всё
.............
rdsr_obj = nav.read_file(filename)
.............
dicom = pydicom.dcmread(filename, force=True)
Подробнее здесь: https://stackoverflow.com/questions/790 ... dicom-file