是否可以存储布尔值?
我尝试在BigTable中存储True值,并收到错误消息:
TypeError:无法将True转换为字节
查看GitHub中的代码,使用了函数_to_bytes
,如果无法将其转换为字节,则会引发错误。
是否存在建议的存储布尔数据的方法?还是我应该强制转换为True / False,然后在检索数据时记得将值转换回布尔值?
答案 0 :(得分:2)
这是HBase如何将布尔值转换为Bytes.java
中的字节:
public static byte [] toBytes(final boolean b) {
return new byte[] { b ? (byte) -1 : (byte) 0 };
}
Java cloud-bigtable-client
鼓励Java用户使用该类将基元转换为值。其他库中可能应该有一个类似的类,以帮助鼓励常见的转换。
答案 1 :(得分:1)
您无法使用Python在BigTable中存储布尔类型。
这是documentation关于可以存储在BigTable中的数据类型的说明:
Cloud Bigtable在大多数情况下会将所有数据视为原始字节字符串
因此,看来您最好的选择就是将“ True / False”转换为字符串,并在获取数据时将其转换回布尔值。