小编lor*_*zin的帖子

Python base64编码然后解码通用对象

我正在尝试将 numpy.ndarray 转换为 base64,然后再将其转换回来。Base64 库是正确的选择吗?下面非常简单的代码甚至无法按预期工作。我缺少什么?

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
print(x)
print(type(x))

encoded = base64.b64encode(x)
decoded = base64.b64decode(encoded)
print(decoded)
print(type(decoded))
Run Code Online (Sandbox Code Playgroud)

有没有办法取回原始变量?

一般问题是:我可以将“任何”对象转换为二进制字符串,然后转换回原始类型吗?

我也许可以使用 pickle 但我需要压缩格式(不在文件中):类似

x_compressed = zipped(pickle.dumps(x))
Run Code Online (Sandbox Code Playgroud)

python base64 encoding serialization numpy

5
推荐指数
1
解决办法
8004
查看次数

如何设计 Bigtable Key

我会在 Bigtable 中创建我的最佳密钥。我知道关键设计对于查询速度和优化至关重要。我的案例与来自网络机器的时间序列信息有关。这是一张又高又窄的表格,有 3 列:idinfodatetime

我最常见的查询是获取每天每个 id 的所有信息。

应该如何设计键以获得最佳性能? id#date?

performance google-cloud-platform google-cloud-bigtable

3
推荐指数
1
解决办法
915
查看次数

Apache Beam / GCP Dataflow 编码问题

我在 datalab 中使用 apache 光束/数据流“玩”。我正在尝试从 gcs 读取 csv 文件。当我使用以下方法创建 pcollection 时:

lines = p | 'ReadMyFile' >> beam.io.ReadFromText('gs://' + BUCKET_NAME + '/' + input_file, coder='StrUtf8Coder')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

LookupError: unknown encoding: "THE","NAME","OF","COLUMNS"
Run Code Online (Sandbox Code Playgroud)

似乎列的名称被解释为编码?

我不明白出了什么问题。如果我不指定“编码器”,我会得到

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe0 in position 1045: invalid continuation byte
Run Code Online (Sandbox Code Playgroud)

在 apache 光束之外,我可以通过从 gcs 读取文件来处理此错误:

blob = storage.Blob(gs_path, bucket)
data = blob.download_as_string()
data.decode('utf-8', 'ignore')
Run Code Online (Sandbox Code Playgroud)

我读到 apache beam 只支持 utf8 并且文件不只包含 utf8。

我应该下载然后转换为 pcollection 吗?

有什么建议吗?

character-encoding google-cloud-dataflow apache-beam

2
推荐指数
1
解决办法
2769
查看次数