首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶-正确使用jsonify

烧瓶-正确使用jsonify
EN

Stack Overflow用户
提问于 2017-02-17 03:19:31
回答 2查看 1.7K关注 0票数 0

尽管我查看了文档,但我在理解jsonify的工作方式方面遇到了一些困难。正如您在下面看到的,我调用了返回字典的lookup()函数,然后我试图对它进行jsonify。

代码语言:javascript
复制
@app.route("/articles")
def articles():

    a = lookup(33496)
    return jsonify([link=a["link"], title = a["title"]])       #invalid syntax error

我的helpers.py

代码语言:javascript
复制
import feedparser
import urllib.parse

def lookup(geo):
    """Looks up articles for geo."""       #this function already parses the 'link' and 'title' form rss feed

    # check cache for geo
    if geo in lookup.cache:
        return lookup.cache[geo]

    # get feed from Google
    feed = feedparser.parse("http://news.google.com/news?geo={}&output=rss".format(urllib.parse.quote(geo, safe="")))

    # if no items in feed, get feed from Onion
    if not feed["items"]:
        feed = feedparser.parse("http://www.theonion.com/feeds/rss")

    # cache results
    lookup.cache[geo] = [{"link": item["link"], "title": item["title"]} for item in feed["items"]]

    # return results
    return lookup.cache[geo]

# initialize cache
lookup.cache = {}

我得到的错误是语法无效。知道我做错了什么吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-17 03:33:39

我认为您的dict语法是错误的。您可以在正式文件中了解更多信息。

我认为您正在尝试的代码如下:

代码语言:javascript
复制
@app.route("/articles")
def articles():
    a = lookup(33496)
    return jsonify({"link" : a["link"], "title" : a["title"]})

具体来说,您应该使用大括号代替括号({})和冒号(:),而不是等号。

另一种选择是让jsonify()执行转换(正如另一个答案中所指出的):

代码语言:javascript
复制
@app.route("/articles")
def articles():
    a = lookup(33496)
    return jsonify(link = a["link"], title = a["title"])

尽管如此,我认为您最好还是使用create dict。当您需要创建更大的JSON对象时,它变得更加灵活。

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2017-02-17 03:21:39

你不需要方括号,把它们去掉。

代码语言:javascript
复制
return jsonify(link=a["link"], title=a["title"])
             # ^At this point                 ^ and this one.

阅读python中的关键字参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42288783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档