这里使用了fducslg版本的pafd-automated,详见github
每天给平安复旦提交相同的精确到11位小数的gps坐标也太假了,能不能随机坐标呢?
思路很简单,就是保留经纬度三位小数(大概十几米)并随机生成后面的位数。这样做的目的是防止多次随机后产生误差。(前三位总是不变的)
花絮:然而,由于本人水平零蛋且刚接触json,闹了笑话。原来python对象转化为json字符串不能用str(item)😅😅😅这样会出一系列问题导致无法被解析。。无知且胆大的我向平安复旦提交了错误的由str()生成的错误json,导致当天我的平安复旦页面无法正确加载出来😅😅😅还好没被开除🥳🥳🥳
正确的做法是json.dumps
,以及为了使用双引号、避免ascii自动编码,需要指定一些参数。
代码如下
def random_geo(geo_api_info):
"""
在上次提交位置的附近生成随机位置
"""
geo_api_info = json.loads(geo_api_info)
#用format防止最后几位是0被float减少位数
lng = float('{:.5f}'.format(geo_api_info['position']['lng'])[:-2] + str(random.randint(0,99)))
lat = float('{:.5f}'.format(geo_api_info['position']['lat'])[:-2] + str(random.randint(0,99)))
Q = float('{:.5f}'.format(lat) + str(random.randint(0,4)) + str(random.randint(0,999999)))
R = float('{:.5f}'.format(lng) + str(random.randint(0,4)) + str(random.randint(0,999999)))
#让lng,lat保留三位小数(精确到大十几米),并据此随机生成精确位置(Q,R),防止多天后多次随机产生较大误差
geo_api_info['position'].update(
{
'Q': Q,
'R': R,
'lng': lng,
'lat': lat
}
)
return json.dumps(geo_api_info,ensure_ascii=False,separators=(',',':')) #一定要dunps啊!!!
geo_api_info = Zlapp.random_geo(self.last_info["geo_api_info"])
Comments NOTHING