【问题标题】:Print json content from wp site in Python?在 Python 中从 wp 站点打印 json 内容?
【发布时间】:2021-01-15 11:28:31
【问题描述】:

抱歉这个菜鸟问题,但我认为我做错了什么。所以想法是获取 Wordpress 帖子的 json 数据,然后只打印 wp 帖子的文本内容。我正在使用以下设置:

    url = "../wp-json/wp/v2/posts/{id}"
    user= ""
    password = ""
    credentials = user + ':' + password
    token = base64.b64encode (credentials.encode ())
    header = {'Authorization': 'Basic ' + token.decode ('utf-8')}
    responce = requests.get (url, headers=header, params="title")

    return (responce.text)

我需要它是一个字符串才能在标签中使用它,但我可能做错了,任何建议将不胜感激^^

【问题讨论】:

    标签: python json python-3.x wordpress get


    【解决方案1】:

    不完全确定这是否是您正在寻找的,但如果您想要一个字符串,您可以尝试这样的事情:

    return (str(responce))
    

    【讨论】:

      【解决方案2】:

      你的第一个问题是:

      url = "../wp-json/wp/v2/posts/{id}"
      

      这是一个相对 URL,对于requests,您需要一个绝对 URL。因此,要么提供一个绝对 URL,要么你可以通过提供当前 URL 来计算它,例如:

      from urllib.parse import urljoin
      
      current_url = "https://www.example.com/abc/def/x.py"
      print(urljoin(current_url, "../wp-json/wp/v2/posts/{id}"))
      

      打印:

      https://www.example.com/abc/wp-json/wp/v2/posts/{id}
      

      其次,resonce.text 将返回一个字节(Python 3)。如果您希望内容以字符串(unicode)形式返回,则返回responce.content。除了“您需要将它作为字符串”之外,您还没有确切地说什么,所以我认为这是您的另一个问题。

      【讨论】:

      • 谢谢!我正在使用绝对 url,只是不想在这里发布它并且它可以工作,问题是它以 json 格式打印,我需要以文本格式的 wp 帖子的内容,它需要是一个字符串而不是一个对象,因为我将在标签中使用它(我正在使用 kivy 框架)我希望这是有道理的我是一个新手,所以我可能无法很好地解释自己,对不起!
      • 不,不是很清楚。正是responce.json() 通过解析返回的JSON 字符串返回一个object(记住:JSON 是一个对象的string 表示)。否则,responce.text 是一个字符串,在本例中为 JSON string。您需要在问题中指定希望的价值是什么您将获得什么,并且您需要非常精确。
      【解决方案3】:

      我用过: 返回 str(json.loads(responce.text)) 而且效果很好^^

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-08
        • 1970-01-01
        • 1970-01-01
        • 2021-09-13
        • 1970-01-01
        • 1970-01-01
        • 2017-03-13
        • 1970-01-01
        相关资源
        最近更新 更多