1. python3通過pycharm編譯器調用requests介面返回jsON格式Unexpected UTF-8 BOM (decode using utf-8-sig)
因為你的req內容包含BOM字元,去掉req中BOM頭的方法如下
ifreq.startswith(u'ufeff'):
req=req.encode('utf8')[3:].decode('utf8')
2. python cgi怎麼產生json
首先,你應該通過Ajax的數據屬性字元串重新presentation。然後,因為你混的dataType 和的contentType 屬性舉握中,更改的dataType 值「JSON」:
$。阿賈克斯({
網址:「saveList.py」
類型:「後」,
數據:JSON.stringify({'參數':{「你好」:「世界」}}),
數據類型:「JSON」,
成功:函數(響應){
警報(皮答帶響應);
}
});
最後,修改codeA位使用JSON請求的工作方式如下:
#!的/ usr / bin中/蟒蛇
進口SYS,JSON
結果= {「成功」:「真」,「信息」:「成功完成命令'};
myjson = json.load(sys.stdin)
#做些什麼「myjson」對象
列印「內容類型:應用程序/ JSON \ñ\ N'
列印json.mps(結果)#燃蘆或「傳入json.mp(結果,sys.stdout替換)」
其結果是,在成功處理的Ajax請求,您將收到對象成功和的消息屬性。
3. PYTHON關於提取返回JSON結果中特定欄位的問題
實際上JSON就是Python字典的字元串表示,但是字典作為一個復雜對象是無法直接轉換成定義它的代碼的字元串,Python有一個叫
simplejson的庫可以方便的完成JSON的生成和解析,這個包已經包含在Python2.6中,就叫json 主要包含四個方法:
mp和mps(從Python生成JSON),load和loads(解析JSON成Python的數據類型)mp和mps的唯一區別是
mp會生成一個類文件對象,mps會生成字元串,同理load和loads分別解析類文件對象和字元串格式的JSON
import json
dic = {
'str': 'this is a string',
'list': [1, 2, 'a', 'b'],
'sub_dic': {
'sub_str': 'this is sub str',
'sub_list': [1, 2, 3]
},
'end': 'end'
}
json.mps(dic)
#output:
#'{"sub_dic": {"sub_str": "this is sub str", "sub_list": [1, 2, 3]}, "end": "end", "list": [1, 2, "a", "b"], "str": "this is a string"}'
舉個簡單的例子就是:
import json
s = json.loads('{"name":"test", "type":{"name":"seq", "parameter":["1", "2"]}}')
print s
print s.keys()
print s["name"]
print s["type"]["name"]
print s["type"]["parameter"][1]
4. 如何使用 Python 得到網頁返回正確的 Json 數據
1.Request Header 里最好加上 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
2. 使用 Post ,個人覺得應該是 requests.post('x.api',data = json.mps(datas),headers = header)
3. 得到的專 Response 也用 json.loads(response.txt)比較保屬險吧
5. python 怎麼寫介面給別人pos調用返回json
說明 sep:分隔符。可以為蘆檔空賀褲 seq:要連接的元素序列、字元串、禪嘩簡元組、字典 上面的語法即:以sep作為分隔符,將seq所有的元素合並成一個新的字元串 返回值:返回一個以分隔符sep連接各個元素後生成的字元串
6. python requests.post返回json()報錯
①GET
# -*- coding:utf-8 -*-
import requests
def get(url, datas=None):
response = requests.get(url, params=datas)
json = response.json()
return json
註:參數datas為json格式
②POST
# -*- coding:utf-8 -*-
import requests
def post(url, datas=None):
response = requests.post(url, data=datas)
json = response.json()
return json
註:參數datas為json格式
7. python 字元串轉 json
python字元串轉json對象,需要使用json模塊的loads函數,如下所示:
>>> import json
>>> s = '{"skey":"val","ikey":10}'
>>> jo = json.loads(s)
>>> jo
{'ikey': 10, 'skey': 'val'}
>>> jo['ikey']
10
>>> jo['skey']
'val'
json.loads介紹:
json.loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
Deserialize s (a str instance containing a JSON document) to a Python object using this conversion table.
The other arguments have the same meaning as in load(), except encoding which is ignored and deprecated.
If the data being deserialized is not a valid JSON document, a JSONDecodeError will be raised.
8. python介面測試request返回json數據,自定義一個字典,怎麼判讀這個字典是返回數據的子集
defis_subdict(dict1,dict2):
'''
判斷字典dict2是否為內dict1的子集容
>>>is_subdict({'a':1,'b':2},{'a':1})
True
>>>is_subdict({'a':1,'b':2},{'c':3})
False
'''
d=dict(dict1,**dict2)
returnd==dict1
if__name__=='__main__':
importdoctest
doctest.testmod()
9. 前端js 後端python 如何用ajax下載文件
前端js改成這樣試試:
var form = $("<form></form>").attr("action", "/cgi-bin/rpt_data_toExcel.py").attr("method", "post");
form.append($("<input></input>").attr("type", "hidden").attr("name", "fileName").attr("value", "results.xls"));
form.appendTo('body').submit().remove();
10. Python爬蟲(七)數據處理方法之JSON
JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation),是輕量級的文本數據交換格式,且具有自我描述性,更易理解。
JSON看起來像python類型(列表,字典)的字元串。
在之前的文章中,我們說到了怎麼用response的方法,獲取到網頁正確解碼後的字元串。如果還有不懂的,可以先閱讀 Python爬蟲(三)Requests庫 。接下來以有道翻譯為例子,說說怎麼通過網頁解碼後的字元串,提取到翻譯結果。
再結合上述有道翻譯的例子,得到字典類型的返回結果,並提取出來翻譯結果。
將上述例子的dict_json換成str字元串,再寫入文本中。
執行完上述的程序,會得到一個fanyi.txt的文件,其結果如下:{"type": "ZH_CN2EN", "errorCode": 0, "elapsedTime": 1, "translateResult": [[{"src": "\u4eba\u751f\u82e6\u77ed\uff0c\u6211\u7528python", "tgt": "Life is too short, I use python"}]]}。這樣子的一份文檔,中文部分顯示的是二進制,且格式非常不利於閱讀,這並不是我們想要的結果。好在json.mps()為我們提供的兩個方法,以幫助我們更好閱讀文檔。
1.ensure_ascii,能夠讓中文顯示成中文;
2.indent,能夠讓下一行在第一行的基礎上空格。
其用法如下: