当前位置: 首页 > 知识库问答 >
问题:

从 python 返回到 Ajax 的列表得到奇怪的字符

赖诚
2023-03-14

如何将列表从Python正确返回到Ajax,返回时输出看起来很奇怪。

ap.py

@app.route('/_get_comUpdate/', methods=['POST'])
def _get_comUpdate():
    comNr = request.form.get('comNr')
        
    com_result = COMPort("ON","COM255",comNr)
    print(com_result)

    return jsonify({'data': render_template('com_response.html', com_result = com_result)})

com_response.html

{{com_result}}

index.html

$.ajax({
    url: "/_get_comUpdate/",
    type: "POST",
    success: function(resp){
        com_result = (resp.data);
        alert(com_result); 
        }
    });

python 中列表的输出:

['ON', 'OFF', 'OFF', 'OFF', 'OFF', 'OFF']

返回到Ajax的列表输出:

['ON', 'OFF', 'OFF', 'OFF', 'OFF', 'OFF']

共有1个答案

汪典
2023-03-14

很抱歉,配方可能不准确,因为我看不到您的所有代码。我猜原因在于指定UTF-8编码

可能是后端。。

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from flask import Flask
from flask.ext.restful import Api
from flask.ext.restful.representations.json import output_json
output_json.func_globals['settings'] = {'ensure_ascii': False, 'encoding': 'utf8'}
app = Flask(__name__)
api = Api(app)
...

可能是前端

<html> <head> <meta charset="utf-8">

可以运行应用程序

set PYTHONIOENCODING=UTF-8

你能用json.dumps代替jsonify吗?希望对你有所帮助)

 类似资料:
  • 问题内容: 我有一些面板内的组合框: 在我将项目更新到.NET 4之前还可以,在将项目(和AJAX)更新到.net4之后,这看起来真的很奇怪……我无法解释正确,我将显示: 我该如何解决?:)完整的CSS / ASPX页面在这里-> https://github.com/nCdy/Issues/tree/master/Ajax%20ComboBox(字符串#287) 问题答案: 我有一个类似的问题,

  • 问题内容: 我不了解python中列表的行为: 为什么一个元素的分配影响另一个元素?感谢您的回答! 问题答案: 当您将一个列表相乘时,它会复制对该列表的引用,但不会创建该列表的副本。由于列表是可变的,因此在更改列表时,所有对其引用的引用都会更改。 用ASCII术语来说: 您可以清楚地看到更改list3将同时影响两个位置。 如果要创建可变长列表而不复制引用,则应执行以下操作: 在这里,我们使用列表理

  • 但是,当从handleAsyncErrors()流链接ObjectNode并到达相同的httpCallbackFlow()时,我们会得到一个异常,该异常由 restClientException:无法写入请求:在org.springframework.web.client.restTemplate$HttpEntityRequestCallback.dowithRequest(restTempla

  • 问题内容: 当我尝试将[] byte编组为JSON格式时,我只有一个奇怪的字符串。 请看下面的代码。 我有两个疑问: 如何将[] bytes封送至JSON? 为什么[] byte成为此字符串? 输出为: 戈朗游乐场:https : //play.golang.org/p/wanppBGzNR 问题答案: 根据文档:https : //golang.org/pkg/encoding/json/#Ma

  • 以及我向服务器发送图像的函数: 在调用函数之后,我得到了奇怪的响应,类似于这样: JFIF C C“ 04-12 17:30:11.144 116 69-13785/mmlab.visualsearch d/okhttp:}!1AQA”Q2#b r$3 br 04-12 17:30:11.144 116 69-13785/mmlab.visualsearch d/okhttp:%&'()*4567

  • 问题内容: 尝试这段代码。为什么getValueB()返回1而不是2?毕竟,递增两次被调用两次。 问题答案: 毕竟,递增两次被调用两次。 是的,但是返回值是 在 第二次调用 之前 确定的。 返回的值由该 时间点在 return语句中的表达式求值确定,而不是“仅在执行离开方法之前”。 从JLS的14.17节开始: 一个带有Expression的return语句试图将控制权转移到包含它的方法的调用者;