BigTable - 你能存储布尔值吗?
BigTable - Can you store boolean values?
是否可以存储布尔值?
我尝试在 BigTable 中存储一个 True 值,但收到错误消息:
TypeError: True could not be converted to bytes
查看GitHub中的代码,使用了函数_to_bytes
,无法转换为字节会报错
是否有推荐的存储布尔数据的方法?或者我应该只转换 True/False 然后记得在检索数据时将值转换回布尔值?
您不能使用 Python 在 BigTable 中存储布尔类型。
这就是documentation所说的可以存储在BigTable中的数据类型:
Cloud Bigtable treats all data as raw byte strings for most purposes
因此,正如您所说,您拥有的最佳选择似乎是将 "True/False" 转换为字符串,并在获取数据时将数据转换回布尔值。
这就是 HBase 在 Bytes.java
中将布尔值转换为字节的方式:
public static byte [] toBytes(final boolean b) {
return new byte[] { b ? (byte) -1 : (byte) 0 };
}
Java cloud-bigtable-client
鼓励 java 用户使用 class 将基元转换为值。其他库中可能应该有类似的 class 来帮助鼓励常见的转换。
是否可以存储布尔值?
我尝试在 BigTable 中存储一个 True 值,但收到错误消息:
TypeError: True could not be converted to bytes
查看GitHub中的代码,使用了函数_to_bytes
,无法转换为字节会报错
是否有推荐的存储布尔数据的方法?或者我应该只转换 True/False 然后记得在检索数据时将值转换回布尔值?
您不能使用 Python 在 BigTable 中存储布尔类型。
这就是documentation所说的可以存储在BigTable中的数据类型:
Cloud Bigtable treats all data as raw byte strings for most purposes
因此,正如您所说,您拥有的最佳选择似乎是将 "True/False" 转换为字符串,并在获取数据时将数据转换回布尔值。
这就是 HBase 在 Bytes.java
中将布尔值转换为字节的方式:
public static byte [] toBytes(final boolean b) {
return new byte[] { b ? (byte) -1 : (byte) 0 };
}
Java cloud-bigtable-client
鼓励 java 用户使用 class 将基元转换为值。其他库中可能应该有类似的 class 来帮助鼓励常见的转换。