Я работаю над погодным приложением.Он предоставит список городов в файле JSON.Затем пользователь может выполнить поиск по данному городу, и приложение предоставит данные о погоде.
Функция поиска по городу работает "отлично".Но точно знаю, что пользователь искал город, и у меня есть только его название.Для разбора данных о погоде мне нужен идентификатор города.Поэтому я создал два списка, один для названия и один для ID города.Выбрав один город, я хочу снова найти город и запомнить место города в списке.Затем я буду использовать позицию, чтобы получить идентификатор города.
from flask import Flask, flash, jsonify, redirect, render_template, request, session
import json
import string
app = Flask(__name__)
CITIES = []
ID = []
with open('cities_list/city.list.json') as f:
data = json.load(f)
for city in data['cities']:
CITIES.append(city['name'])
ID.append(city['id'])
@app.route('/city')
def city():
return render_template('city.html')
@app.route('/search', methods=['GET','POST'])
def search():
if request.method == "GET":
# Read cities.list.json file and display cities
cities = []
q = request.args.get('q')
for city in CITIES:
if q in city:
cities.append(city)
return render_template('search.html', cities=cities)
else:
inpt = request.form.get("city")
counter = 0
for city in CITIES:
counter = counter + 1
if input in city:
id = ID[i]
return render_template('index.html', id=id)
Когда я запускаю код, я получаю сообщение об ошибке:
if input in city:
TypeError: приведение в Unicode: потребностьнайдена строка или буфер, встроенный_функция_метод
Я уже пытался преобразовать переменную города в строку.Но тогда он говорит:
if input in city:
Ошибка типа: приведение к Unicode: нужна строка или буфер, найден встроенный_функция_метод
Рад за любую помощь!Спасибо за вашу поддержку!