Urm*_*Lmn 5 python csv io flask
我有一个.xlsx文件并将其转换为一个.csv文件。然后我将.csv文件上传到我编写的 Python 脚本中,但抛出错误。
由于文件是通过 HTTP 上传的,因此我使用file = request.files['file']. 这将返回一个类型为 的文件FileStorage。在我尝试用对象读取它之后,StringIO如下所示:
io.StringIO(file.stream.read().decode("UTF8"), newline=None)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: initial_value must be str or None, not bytes
Run Code Online (Sandbox Code Playgroud)
FileStorage我还尝试以这种方式读取对象文件:
file_data = file.read().decode("utf-8")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 97: invalid start byte
Run Code Online (Sandbox Code Playgroud)
也许有趣的是,我可以使用以下代码直接读取该文件,即作为 csv 文件:
with open('file_path', 'r') as file:
csv_reader = csv.reader(file, delimiter=";")
...
Run Code Online (Sandbox Code Playgroud)
但由于我试图从上传按钮获取文件,即input类型为 的 HTML 元素file,如上所述,我得到了一个FileStorage对象,但我无法读取它。
任何人都知道我该如何处理这个问题?
先感谢您!
可能是它没有编码为utf-8. 尝试将其解码为latin-1:
file_data = file.read().decode("latin-1")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11158 次 |
| 最近记录: |