企业号的接口如果是用 GET 请求的都好办, 如果是 POST 请求的就坑了爹了, 首先用 requests 去 post json 格式的 body 的时候, 用 data 参数传进去字典由它自己 dumps 出来的 json, 属性用的单引号, 不知微信出于什么原因, 不识别单引号的 json 数据, . 然后的问题是 Python 的, 用 json.dumps 出来的确实是双引号了, 但是只要内容里有\\u54c8\\u54c8 这样子的内容, 就会立即报错, 说不支持这样子的字符串, 但是无论是 json.dumps 还是 simplejson.dumps, 还是 ujson, 都是完全一个德性.
比如:
In [6]: import json
In [7]: d=dict(key="哈哈")
In [8]: json.dumps(d)
Out[8]: '{"key": "\\u54c8\\u54c8"}'
In [9]: d=dict(key=u"哈哈")
In [10]: json.dumps(d)
Out[10]: '{"key": "\\u54c8\\u54c8"}'
In [11]: d=dict(key=u"哈哈".encode('utf8'))
In [12]: json.dumps(d)
Out[12]: '{"key": "\\u54c8\\u54c8"}'
坊间传闻微信内部全是C++开发后台, 就这个情况看到还真是这样子的
比如:
In [6]: import json
In [7]: d=dict(key="哈哈")
In [8]: json.dumps(d)
Out[8]: '{"key": "\\u54c8\\u54c8"}'
In [9]: d=dict(key=u"哈哈")
In [10]: json.dumps(d)
Out[10]: '{"key": "\\u54c8\\u54c8"}'
In [11]: d=dict(key=u"哈哈".encode('utf8'))
In [12]: json.dumps(d)
Out[12]: '{"key": "\\u54c8\\u54c8"}'
坊间传闻微信内部全是C++开发后台, 就这个情况看到还真是这样子的
