Python 消息中带有换行符的Pushbullet pycurl

Python 消息中带有换行符的Pushbullet pycurl,python,pycurl,pushbullet,Python,Pycurl,Pushbullet,我正在尝试使用换行符/换行符发送推送式通知 但它不起作用。 当我添加%0d或\n时,它没有任何作用 在bash中,我只需在curl命令中添加-d,它就可以工作了。 pycurl有类似的解决方案吗 提前谢谢 有什么建议吗 import pycurl text2 = "line%0dline2" postData = '{"type":"note", "title":"Title", "body":"%s"}' %text2.encode("utf-8") c = pycurl.Curl()

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

在bash中,我只需在curl命令中添加-d,它就可以工作了。 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"}'