【问题标题】:Pushover Acknowlage in pythonpython中的Pushover确认
【发布时间】:2016-01-16 12:32:51
【问题描述】:

我在尝试让 ackknowalgemtns 与 python 一起工作时遇到了一些问题。

到目前为止,我的代码发布了消息并获得了 JSON 字符串作为回报,但现在我需要一种方法来从字符串中获取收据

import requests
app_token = 'app token'
user_token = 'user token'
title = 'TEST MESSGAE'
text = 'text for polling'
params = {
            'token': app_token,
            'user': user_token,
            'title': title,
            'message': text,
            'retry': 30, 
            'expire': 180,
            'priority': 2,
            'sound': 'siren',
        }
msg = requests.post('https://api.pushover.net/1/messages.json', data=params)
print "POSTed message"
print msg.json()

输出是

POSTed message
{u'status': 1, u'receipt': u'riD7NEukZsiDQpjhiNppphYnpue8uK', u'request': u'ef5f42d568e966cbf3d2b28c6579397c'}

该参数是一个区分大小写的 30 个字符的字符串,包含字符集 [A-Za-z0-9]。 这是一个正则表达式的工作吗?

【问题讨论】:

  • 为什么不使用json模块将json数据加载为dict?然后您可以执行d['request']d['receipt'] 之类的操作。你会得到'ef5f42d568e966cbf3d2b28c6579397c''riD7NEukZsiDQpjhiNppphYnpue8uK'
  • 我以前从未使用过这样的 json,所以示例会很棒
  • 好的,请稍候:)
  • 您是否考虑过使用已经实现此功能的 python 库?请参阅pushnotifypushoverpy_pushover注意:我是py_pushover的创建者。
  • 我有,但如果你看看代码和函数的数量,我会被要求执行一项任务,这似乎太过分了。我现在使用下面的 json 启动并运行它。我还为用户名的用户密钥制作了一个字典以进行确认。问题是,如果您以前从未使用过 json,那么 pushover api 文档不容易理解

标签: python regex python-2.7 pushover


【解决方案1】:

因为它是json类型,所以你可以使用json模块将数据加载为dict。例如,如果你有一些 json 像这样的数据:

'{"message":"Hello there, wayfaring stranger"}'

然后您可以使用json.loads() 函数将其加载为dict,如下所示:

>>> a = '{"message":"Hello there, wayfaring stranger"}'
>>> import json
>>> d = json.loads(a)
>>> d.items()
dict_items([('message', 'Hello there, wayfaring stranger')])
>>> 

如您所见,a 是字符串,但 d 是字典。现在,'Hello there, wayfaring stranger' 是键 'message' 的值。


但是msg.json() can auto covert the json data to dict,所以这里不需要json模块。所以如果你想得到'ef5f42d568e966cbf3d2b28c6579397c',你可以简单地做这样的事情:

json_data = msg.json()
print json_data['request']

【讨论】:

  • 感谢工作是一种享受。我看过那个链接,这就是我得到输出的方式,因为 python 的 pushovers 文档非常有限。
  • @shaggs 我很高兴听到这个消息 :)
  • 现在开始锻炼https://api.pushover.net/1/receipts/(your receipt).json?token=(your app token)并投票直到我得到回复
猜你喜欢
  • 2016-05-25
  • 2019-05-14
  • 2018-07-04
  • 2015-09-17
  • 2021-03-22
  • 1970-01-01
  • 2021-01-27
  • 2019-06-12
  • 2019-10-28
相关资源
最近更新 更多