python - Pushbullet pycurl 在消息中带有换行符

标签 python pycurl pushbullet

我正在尝试使用换行符/换行符发送推送通知 但它不起作用。 当我添加 %0d 或\n 时它不会执行任何操作。

在 bash 中,我只需将 -d 添加到我的 curl 命令中,它就可以工作。 pycurl 有类似的解决方案吗?

提前致谢

有什么建议吗?

import pycurl


text2 = "line%0dline2"
postData =  '{"type":"note", "title":"Title", "body":"%s"}' %text2.encode("utf-8")
c = pycurl.Curl()
c.setopt(pycurl.WRITEFUNCTION, lambda x: None)
c.setopt(pycurl.URL, 'https://api.pushbullet.com/v2/pushes')
c.setopt(pycurl.HTTPHEADER, ['Content-Type: application/json'])
c.setopt(pycurl.USERPWD, "api")
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, postData)
c.perform()

最佳答案

我猜你正在使用类似的东西:

postData = '{"type":"note", "title":"Title", "body":"line\nline2"}'

这意味着当您将其发送到服务器时,服务器会看到:

{"type":"note", "title":"Title", "body":"line
line2"}

您可以通过执行以下操作来看到这一点:

print(postData)

JSON 指定换行符出现在字符串中时必须进行转义,因此您真正想要发送的是:

{"type":"note", "title":"Title", "body":"line\nline2"}

要在 python 中得到它,您应该使用“\\n”或原始字符串:

postData = '{"type":"note", "title":"Title", "body":"line\\nline2"}'

关于python - Pushbullet pycurl 在消息中带有换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29537481/

相关文章:

python - Boost Python 3迭代字典

python - 在 CentOS 上安装 Pycurl?

c# - 如何在我的程序中实现 curl (Pushbullet API)?

Javascript101 帮助 |应用程序接口(interface) |卡住

javascript - JavaFX WebEngine 和 Pushbullet 身份验证

python - 使用 numpy 获取二维索引的子集

python - 将 int 拆分为字节的快速方法

python - 一维 NumPy 数组上的滑动标准差

python - 使用 'fatal error: gnutls/gnutls.h: No such file or directory' 安装 pycurl

python - 从 urllib2 迁移到 pycurl