【问题标题】:How to fix: Unicode problem by comparing string with JSON如何解决:通过将字符串与 JSON 进行比较来解决 Unicode 问题
【发布时间】:2019-11-13 10:32:31
【问题描述】:

我正在开发一个天气应用程序。它将在 json 文件中提供城市列表。然后用户可以搜索给定的城市,应用程序将提供天气数据。

城市搜索功能“正常”。但是知道用户搜索了一个城市,而我只有它的名称。为了解析天气数据,我需要城市的 ID。因此,我创建了两个列表,一个用于名称,另一个用于城市 ID。选择一个城市后,我想再次搜索城市并记住该城市在列表中的位置。然后我将使用位置来获取城市的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: coercing to Unicode: need string or buffer, builtin_function_or_method found

我已经尝试将 city 变量转换为字符串。但后来它说:

if input in city:

TypeError: coercing to Unicode: need string or buffer, builtin_function_or_method found

很高兴得到任何帮助! 感谢您的支持!

【问题讨论】:

    标签: python json string unicode


    【解决方案1】:

    input 是一个builtin 函数。您的变量名为inpt

        inpt = request.form.get("city")
        counter = 0
        for city in CITIES:
            counter = counter + 1
            if inpt in city:
                id = ID[i]
        return render_template('index.html', id=id)
    

    注意if inpt in cityif input in city

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多