我注意到,当将Python字典转换为google.protobuf.Struct时,整数将转换为浮点数,即:
my_dict = {'id': 42}
成为这个:
fields {
key: "id"
value {
number_value: 42.0
}
}
这是非常不幸的,但是从proto definition of struct看,这似乎是设计使然,因为确实只有一个双精度值。
有人知道原因吗?有没有办法手动跟踪哪些数字是整数,哪些是浮点数?
答案 0 :(得分:0)
创建com.google.protobuf.Struct
来存储JSON数据时,它遵循JSON规范,该规范不区分Integer和Float:
https://tools.ietf.org/html/rfc7159#page-6
有些JSON的实现提供了整数数据类型,例如JSONObject。但是,这种实现通常依赖于将数字强制转换为Integer。参见JsonNumber.isIntegral。