Python使用post推送消息到公众号,中文出现编码问题的解决方法总结

1.问题

直接来看问题,使用python推送内容到微信公众号的草稿箱时,

已经成功返回:

在这里插入图片描述

认为搞定了,打开公众号一看,好家伙,是这样子的。

在这里插入图片描述

好了,既然你已经找到这儿了,就说明你也遇到这个烦人的问题了,我们都知道是因为编码问题,却不知道怎样解决,而且神奇的是,用postman测时,是不存在这个问题的。

2.解决方法

那么直接看解决方法

我看网上很多帖子,找了好几个小时,终于找到:

(1)post中传入data时,请你把data先进行这样一个处理(我最终是这样解决的

data = bytes(json.dumps(data, ensure_ascii=False).encode('utf-8'))

然后接下来可能会报

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ABoDkG7D-1666658603016)(C:\Users\yu074\AppData\Roaming\Typora\typora-user-images\image-20221021093814893.png)]

不要慌,这是因为你原来的这句代码还在:

data=json.dumps(data)

那么,改为data = data即可

可以了的话你就可以走了,下面是一些博主给出的另一个方法,我试了,但是不管用,说不定对你的管用。

(2)在headers中加上’Content-Type’: ‘application/json; charset=utf-8’,如下:

headers = {
    'User-Agent': 这个改成自己的,
    'Content-Type': 'application/json; charset=utf-8'
}

这个方式我试了,但不管用,你可以试试。

3.我的代码

下面,如果以上方法看了却不会改,看看我调好的代码吧,说不定能起到参考作用

# 本代码用于测试推送消息到微信公众号的草稿箱
import json
import time

import requests
data = {
        "articles": [
            {
                "title": "test-title111",
                "author": "Python和数据分析",
                "content": "看更多内容,关注公众号Python和数据分析",  # 这里是上传的文章内容
                "thumb_media_id": "PLptQPQuMDwSGg-b9RCk4WBVpL3tgGJ0u3sayANiiDSObaai3T9rHkgzkFVSElH2"    # 这是上传图片到平台后返回来的id
            }

        ]
    }

# 重点看这儿
data = bytes(json.dumps(data, ensure_ascii=False).encode('utf-8')) 
header_dict = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
    'Content-Type': 'application/json; charset=utf-8'   # 重点看这儿
}
resp = requests.post(
    url='https://api.weixin.qq.com/cgi-bin/draft/add?',
    params={
        'access_token': '62_kGF8UX_3M6C_nu5X_xVHXQe7S42YBDcrnsgC96F8j3uovouLYRVCF76uKG_duzxTpaeCfonTOUFwQvJw_ZmGGXy5GmuOLPp3X9Oc3YutDpQ-t7wPuFrHFPQV48qv9eCaYtG2w0Cb9DtRbvp7RDLeAJAYKS'},
    headers=header_dict,
    data=data,    重点看这儿
)

好了,本期就分享到这里,下期(说不定现在已经更新了,可以去看看我的其他文章),我会把获取token到自动抓取数据,解析后通过接口上传到草稿箱的一整套流程和代码梳理出来分享给大家,尽情期待!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python和数据分析

钟意作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值