int - 如何在 protobuf 结构中使用整数?
问题描述
我注意到在将 Python 字典转换为 google.protobuf.Struct 时,整数会变成浮点数,即:
my_dict = {'id': 42}
变成这样:
fields {
key: "id"
value {
number_value: 42.0
}
}
这是非常不幸的,但看看struct 的原始定义,这似乎是设计使然,因为确实只有一个双数值。
有谁知道这是什么原因,有没有办法在不手动跟踪哪些数字是整数和哪些是浮点数的情况下解决这个问题?
解决方案
与com.google.protobuf.Struct
创建来存储 JSON 数据一样,它遵循不区分 Integer 和 Float 的 JSON 规范:
https://www.rfc-editor.org/rfc/rfc7159#page-6
有提供整数数据类型的 JSON 实现,例如JSONObject。但是,这种实现通常依赖于将数字转换为整数。请参阅JsonNumber.isIntegral。
推荐阅读
- react-admin - 将参数传递给 react-admin dataProvider getList
- clojure - 为什么 Clojure 的补码函数定义为多元函数?
- embedded - 使用 ECC 在 NAND 闪存的同一页上进行多次写入访问
- javascript - 如何按索引覆盖对象属性值?
- swift - 无法转换“Publishers.FlatMap”类型的返回表达式
, AnyPublisher<>>' 返回类型 'AnyPublisher<>' - sql - SQL 查询从日期中选择特定记录
- spring-boot - 块写入方法 SpringData
- c# - 我试图将代码从 2d (Physics.OverlapCircle) 转换为 3d (Physics.OverlapSphere) 但它仍然不起作用,有人可以帮助我吗?谢谢
- azure - 使用 Azure B2C/B2B 保护本地 Web 应用程序
- scikit-learn - 关于ColumnTransformer OneHotEncoder VS mode_onehot_pipe的问题