类型错误浮点对象不可迭代
TypeError: 'float' object is not iterable
def tengxun(self,addr):
# addr1=self.addr
# addr=self.comboBox.currentText()+self.comboBox_2.currentText()+self.lineEdit.text()
print(str(addr))
print(11111111)
url = "https://apis.map.qq.com/jsapi?" #腾讯地图API接口
para = {
"qt": "geoc",
"addr":addr, #传入地址参数
"output": "json",
"key": "S7RBZ-RL2E 3-7IP3C-364T2-SPW77-3QFG3", #即腾讯地图API的key
"pf":"jsapi",
"ref":"jsapi"
}
req = requests.get(url,para) #请求数据
req = req.json() #转为json格式
#print(req)
m = req["detail"]
print(m)
g = f"{m['pointx']},{m['pointy']}" #解析到经纬度数据
print(g)
df1 = pd.read_excel("result.xlsx")
df2=df1['经纬度']
print(df2.values)
df3=df1["名称"]
print(df3.values)
df4=df3.values
h=g.split(",")
for i in df2.values:
for j in df3.values:
print(i)
k=i.split(",")
print(j)
print(k[0])
print(h[0])
if float(k[0])>float(h[0]):
if float(k[1])>float(h[1]):
dis=(float(k[0])-float(h[0]))+(float(k[1])-float(h[1]))
self.dis[j]={"name":j,"dis":dis}
else:
dis=(float(k[0])-float(h[0]))+(float(h[1])-float(k[1]))
self.dis[j]={"name":j,"dis":dis}
else:
if float(k[1])<float(h[1]):
dis=(float(h[0])-float(k[0]))+(float(h[1])-float(k[1]))
self.dis[j]={"name":j,"dis":dis}
else:
dis=(float(h[0])-float(k[0]))+(float(k[1])-float(h[1]))
self.dis[j]={"name":j,"dis":dis}
print(self.dis)
print(self.dis)
for i in self.dis.keys():
temp=self.dis[i]
print(temp["dis"])
first=min(temp["dis"])
print(first)
return g
def start (self):
add1=""
addr=self.comboBox.currentText()+self.comboBox_2.currentText()+self.lineEdit.text()
# print(add1)
addr2="上海市闵行区漕宝路3138号"
self.addr=add1
# print(addr)
self.tengxun(addr)
Traceback (most recent call last):
File "e:\python\项目\停车管理\停车排序管理.py", line 222, in start
self.tengxun(addr)
File "e:\python\项目\停车管理\停车排序管理.py", line 207, in tengxun
first=min(temp["dis"])
TypeError: 'float' object is not iterable
尝试使用https://blog.csdn.net/sl01224318/article/details/108183799 中提到的转为astype(str)的方法,但是显示AttributeError: 'float' object has no attribute 'astype',修稿代码如下:
for i in self.dis.keys():
temp=self.dis[i]
print(temp["dis"])
first=min(temp["dis"].astype(str))