python-post-json 中文問題---微信公眾號中遇到的問題
轉載自http://my.oschina.net/yangyanxing/blog/159211 urllib2 |
02 |
import json |
03 |
04 |
html = urllib2.urlopen(r 'http://api.douban.com/v2/book/isbn/9787218087351' ) |
05 |
06 |
hjson = json.loads(heml.read()) |
07 |
08 |
print hjson[ 'rating' ] |
09 |
print hjson[ 'images' ][ 'large' ] |
10 |
print hjson[ 'summary' ] |
python中json格式資料的編碼和解碼
http://www.01happy.com/python-json-encode-and-decode/python程式設計_python通過get方式,post方式傳送http請求和接收http響應_import urllib模組,import urllib2模組,import httplib模組
http://blog.163.com/[email protected]/blog/static/132229655201231085444250/轉載自http://stackoverflow.com/questions/9746303/how-do-i-send-a-post-request-as-a-json
通過python 傳送post請求,並附帶json資訊
requrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=%s" %access_token #之前的錯誤是因為在替換%s的時候,後面使用了逗號,以至於requrl從字串變成了陣列 #所以提示AttributeError: 'tuple' object has no attribute 'strip' req = urllib2.Request(requrl) req.add_header('Content-Type', 'application/json') #重新載入系統預設的編碼方式 reload(sys) sys.setdefaultencoding('utf-8') response = urllib2.urlopen(req, json.dumps(body,ensure_ascii=False)) #json.dumps會自動把中文轉換為unicode,然後提交後,會回覆{"errcode":40033,"errmsg":"invalid charset. please check your reques#t, if include \\uxxxx will create fail!"},所以只需要新增ensure_ascii=False,就可以成功新增 res = response.read() print res
Python下呼叫json.dumps中文顯示問題解決辦法
json.dumps在預設情況下,對於非ascii字元生成的是相對應的字元編碼,而非原始字元,例如:
>>> import json
>>> js = json.loads('{"haha": "哈哈"}')
>>> print json.dumps(js)
{"haha": "\u54c8\u54c8"}
解決辦法很簡單:
>>> print json.dumps(js, ensure_ascii=False)
{"haha": "哈哈"}