0

我正在尝试编写前端调用的 API 所以代码从 DB 读取数据并转换为数组。如果您看到第二个 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)
4

1 回答 1

2

该错误可能是索引错误,因为没有"city"in location_info。它看起来像是location_info一个对象列表,每个对象都是一个带有键的字典,例如city. 相反,您可能想要的是制作location_info一个字典,其中键是城市名称,值是您之前附加到列表的内容。首先将其初始化为字典而不是列表:

location_info = {}

然后让第二个“if”语句在字典中搜索那个城市:

if row.city in location_info:

然后在添加 to 时location_info,分配给字典而不是附加:

location_info[row.city] = d
于 2013-07-01T21:31:43.760 回答