我正在尝试编写前端调用的API 所以代码从DB读取数据并转换为Array。 如果你看到第二个if语句,我试图检查city是否在数组中。 如果使用OR将代码添加到以前的代码中是真的。 它在第二个if语句中出错。 任何解决方案。 谢谢。
import pyodbc
import json
import collections
location_info=[]
for row in\
db().select(db.location_info.city,db.location_info.code,db.location_info.latitude,db.location_info.longitude):
d = collections.OrderedDict()
if len(row.code.split(" ")) == 2:
row.code=row.code.split(" ")[0]
if row.city in location_info["city"]:
temp_location=location_info["code"]
temp_location+=" OR "+row.code
d["code"]=temo_location
location_info.append(d)
else:
d["city"]=row.city
d["code"]=row.code
d["latidue"]=row.latitude
d["longitude"]=row.longitude
location_info.append(d)
答案 0 :(得分:2)
错误可能是索引错误,因为"city"
中没有location_info
。看起来location_info
是一个对象列表,每个对象都是一个包含city
等键的字典。您可能想要的是使location_info
成为一个字典,其中键是城市名称,值是您之前附加到列表中的值。首先将其初始化为字典而不是列表:
location_info = {}
然后使第二个“if”语句搜索该城市的字典:
if row.city in location_info:
然后在添加到location_info
时,分配到字典而不是附加:
location_info[row.city] = d