关于匹配索引错误

时间:2013-07-01 21:25:08

标签: python web2py

我正在尝试编写前端调用的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)

1 个答案:

答案 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