【问题标题】:flask.jsonify returns array with square brackets instead of curly bracketsflask.jsonify 返回带有方括号而不是大括号的数组
【发布时间】:2020-07-27 09:32:57
【问题描述】:

我是第一次使用烧瓶和 jsonify,但遇到了一个小问题。我的 json 输出返回带方括号的数组格式,而不是带大括号的 json 对象。

有人可以指点我正确的方向吗?

我的函数接受一个文本并使用 spacy 将其分解为标记和有关标记的详细信息。

我的代码是-

@app.route('/api/<string:mytext>',methods=['GET'])
def myfunc(mytext):

    docx = nlp(mytext.strip())
    allData = ['Token:{},Tag:{},POS:{}'.format(token.text,token.tag_,token.pos_) for token in docx ]
    
    return jsonify(allData)

它将数据返回为

[
  "Token:\",Tag:``,POS:PUNCT", 
  "Token:test,Tag:VB,POS:VERB", 
  "Token:this,Tag:DT,POS:DET", 
]

我希望返回 JSON 是带有大括号的标准 json 响应,以便我的 c# 应用可以正确反序列化它。

任何帮助表示赞赏。谢谢

【问题讨论】:

  • 您的 allData 变量是一个包含 3 个字符串的列表,而不是包含 3 个条目的对象。考虑以不同的方式创建您的 allData 列表,以便它有 3 个对象,每个对象有 3 个条目。
  • 感谢Septem151,您能分享一下或指出实现这一目标的方向吗?对不起,我不精通python。只需创建此 api 以通过我的 c# 应用程序访问,这是我主要编写代码的地方。谢谢

标签: python json flask flask-restful jsonify


【解决方案1】:

您希望您的列表理解创建 Python dict/大括号。它仍然需要创建为list/Array/方括号,因为您的键名对于每一行/实体都是相同的。

allData = [{'Token': token.text, 'Tag': token.tag_, 'POS': token.pos_} for token in docx]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2011-07-05
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    相关资源
    最近更新 更多