python - 通过 Pandas 数据框使用不同于 utf-8 或 ISO-8859-1 的编码将外部表加载到 Big Query
问题描述
我正在将外部表从 Drive 上传到 Big Query。它是 CSV,Windows-1254
格式可能是:
$ chardetect file.csv
file.csv: Windows-1254 with confidence 0.4127619770171521
正如我在 BQ 文档中阅读的那样 -外部数据配置,CSV 选项:“支持的值是UTF-8
或ISO-8859-1
”
我的 python 代码将外部 CSV(从 Drive)加载到 BQ 中:
external_config = bigquery.ExternalConfig("CSV")
external_config.source_uris = [csv_url]
external_config.options.skip_leading_rows = 1
external_config.options.encoding = 'UTF-8'
table_id = "temp_table"
job_config = bigquery.QueryJobConfig(
table_definitions={table_id: external_config})
sql = f'SELECT * FROM `{table_id}`;'
df = self.bq_client.query(sql, job_config=job_config).to_dataframe(
create_bqstorage_client=False)
我column: value
在数据框中的一个看起来像这样:
'Opis_transakcji': 'Op³ata za wyp³atê'
值不正确(编码错误)。
我应该如何获得具有正确编码(Windows-1254
或ISO-8859-9
)的 df,或者在加载 df 以将其转换为正确编码后我应该做什么?
解决方案
推荐阅读
- module - 如何从 PrestaShop 1.7+ 中的另一个模块调用模块静态函数
- rust - Rust 和 trait 边界约定 (?Sized)
- c++11 - 排列组合c++逻辑错误
- python - 带有 Pandas 数据框千位分隔符的 XlsxWriter
- sql-server - Pentaho 无法连接到 SQL Server 2017
- c++ - C++:构建选项“-j”是什么意思?
- python - 在python中将矩阵的值更改为高于阈值
- python - 在python中迭代一维数组的每个元素
- python - 如何从树中删除 NavigableString?
- laravel - 存储在 AWS 存储桶中的文件只有在用户登录 Laravel 应用程序时才能下载。不是直接访问 URL