BlackboxProtobuf解析Protobuf响应时负数值异常显示为正数值的排查求助
BlackboxProtobuf解析Protobuf响应时负数值异常显示为正数值的排查求助
我现在碰到一个棘手的问题:用blackboxprotobuf解析Protobuf接口响应时,本该是负数的字段被解析成了正数,完全不符合预期。
具体情况是这样的:
我调用某API时传入了纬度40.741895和经度-73.989308,通过付费框架生成了密钥81859706用于请求接口。请求代码如下:
url = "https://gspe85-ssl.ls.apple.com/wifi_request_tile" response =requests.get(url, headers={ 'Accept': '*/*', 'Connection': 'keep-alive', 'X-tilekey': "81859706", 'User-Agent': 'geod/1 CFNetwork/1496.0.7 Darwin/23.5.0', 'Accept-Language': 'en-US,en-GB;q=0.9,en;q=0.8', 'X-os-version': '17.5.21F79' })
接口返回的是Protobuf格式的数据,我用blackboxprotobuf将其转成JSON格式处理,代码片段如下:
message, typedef = blackboxprotobuf.protobuf_to_json(response.content) json1_data = json.loads(message)
但解析后的结果里,本该对应负数经度的字段变成了正数,比如这段响应里的"2": 3555038608,这个值实际应该是负数:
"2": [ { "4": { "2": { "1": 1, "2": 1 } }, "5": 124103876854927, "6": { "1": 407295068, "2": 3555038608 // 这个值应该是负数 } },
有没有大佬能指点下怎么排查和修复这个问题?万分感谢!
备注:内容来源于stack exchange,提问作者Anand
相关产品推荐
相关产品推荐

