1. 程式人生 > >JS Python Flask 處理json 學習筆記

JS Python Flask 處理json 學習筆記

Json在程式碼編寫過程中有著極其重要的作用,一般的資料傳輸都需要用到Json,Json資料大致分為Json物件和Json字串,而這兩者的轉換就顯得尤為重要。當然,在這之前要有支援Json的環境,比如json.js包和Python所支援的json包。我不認為json的學習要分開學,因為在一個專案中不可能只在前端或只在後臺使用json,這兩者是互動的,因此json的學習放在一起比較好。現將工作中所做的json相關的內容記錄如下:

1. Json在JavaScript中的處理。一般我們在前端使用js進行向後臺傳輸json資料,或者使用js接收來自後臺傳來的json資料。首先,我們需要知道什麼是json物件和json字串。

json字串,顧名思義,是一個字串,只不過它裡面是json格式。如: 

var s = "{'name':'lee', 'age:':11}";
json物件,是一個json格式的物件,如:
var s = {'name':'lee', 'age:':11};
而從前端傳到後臺這個過程中,都是以json字串的形式傳遞的,所以我們就要掌握這兩者之間的相互轉化。

(1)JavaScript中json字串轉物件:

一般有三個函式,eval()、parseJSON()、JSON.parse(),用法分別如下:

var str = "{'name':'lee', 'age:':11}";

var obj = eval('('+ str +')');      //方法1

var obj = str.parseJSON();          //方法2

var obj = JSON.parse(str);          //方法3

轉成json物件後,可以這樣呼叫:

obj.name;    //取json中key為name的值

(2)JavaScript中json物件轉字串:

json物件轉字串有兩個函式可用:toJSONString()、JSON.stringify(),具體用法如下:

var obj = {'name':'lee', 'age:':11};

var str = obj.toJSONString();       //方法1

var str = JSON.stringify(obj);      //方法2 


2. 當接到前端傳來的json字串後,後端Python就可以將這個json字串進行處理,Python接收json建議使用:

request.form 或 request.args,這二者接收Python資料是比較完整的。 在Python中,json的轉換就變成了json字串和字典或list之間的轉換了,因為這兩者的格式類似於json和json陣列。

(1)json字串轉化為字典或list,主要使用 json.loads() 函式,如:

import json

str = '{'name':'lee', 'age':11}'
temp = json.loads(str)
轉換之後可以使用type()函式檢視轉換後的資料的型別,那麼再根據型別使用字典或list的相關操作。

(2)字典或list轉化為json字串,主要使用 json.dumps() 函式,如:

import json

data = {'name':'lee', 'age':11}
str = json.dumps(data)

轉成json字串之後就可以進行相關的資料傳遞了。

3. Flask的json操作。

flask提供了一個函式可以將字典或list封裝為json串進行傳遞,因為flask還在學習,所以沒有找到相關的解析json字串的方法。封裝為json字串的函式為jsonify()函式,一般在處理函式返回結果給前端時一般使用如下:

return jsonify(result)     #result為返回的結果

Json的知識還有很多,以上為工作所遇到的相關知識,記錄如上。

本人經驗,僅供參考!

相關推薦

JS Python Flask 處理json 學習筆記

Json在程式碼編寫過程中有著極其重要的作用,一般的資料傳輸都需要用到Json,Json資料大致分為Json物件和Json字串,而這兩者的轉換就顯得尤為重要。當然,在這之前要有支援Json的環境,比如json.js包和Python所支援的json包。我不認為json的學習要

NGINX+UWSGI+PYTHON+FLASK環境搭建——————學習筆記

conf pre listen 入口 root block helloword rc.local ftp 搭建環境 安裝依賴包 #yum -y install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre p

小白學python之錯誤處理_學習筆記

本文以廖雪峰的官方網站為參考來學習python的。其學習連結為廖雪峰小白學python教程。 本文是學習到python的定製類。參考連結廖雪峰python錯誤處理。 本學習筆記僅供參考。 筆記: 在作業系統提供的呼叫中,返回錯誤碼非常常見。 比如,開啟檔案的函式op

Python自然語言處理學習筆記-第二章

第二章:獲得文字語料和詞彙資源 2.1 獲取文字語料庫 古滕堡語料庫 (1)首先載入nltk包。 (2)使用nltk.corpus.gutenberg.fileids方法能夠獲取古滕堡語料庫中所有的文字識別符號。 (3)使用nltk.corpus.

《使用Python進行自然語言處理學習筆記

第三章 加工原料文字 3.1 從網路和硬碟訪問文字 1 電子書 古騰堡專案的其它文字可以線上獲得, 整個過程大概需要幾十秒(實驗室網路不行是硬傷) 使用raw()可以得到原始的字串。但是raw得到的資料絕對不是我們能直接拿去分析的,還要經過一些預處理。我們要將字串分解為詞

python框架之 Tornado 學習筆記(一)

tornado pythontornado 一個簡單的服務器的例子:首先,我們需要安裝 tornado ,安裝比較簡單: pip install tornado 測試安裝是否成功,可以打開python 終端,輸入: import tornado.https

JSON學習筆記

內存 第一個元素 http -s pri blog import size tostring 1.導入所需jar包 2.java類中的常用json字符串定義及拆分 ====第一種,簡單的JSON數組字符串拆分 //定義一個JSON-String字符串的數組

python中strip()方法學習筆記

bbb 方法學 python pytho ring strip strip() clas ng2 Python strip() 方法用於移除字符串頭尾指定的字符(默認為空格)。 當使用strip(‘xxx‘),只要字符串頭尾有"xxx"中的一個,就會去掉,而不是符合字符串‘

寫在最前面的話-2017年老男孩最新全棧python第2期學習筆記

全棧 人類 感悟 bsp style 重點 alex 針對 碼農 這系列的博客的內容是針對2017年老男孩最新全棧python第2期課程做的隨堂筆記,講課人是Alex Li。課程我是在淘寶網上買到的,聽了之後受益匪淺,在這裏向大家推薦一下。筆記內容大多是隨堂記錄,老師講的挑

Python視頻教程學習筆記

學習筆記1.Python安裝 1.1 Linux安裝python centos 6.5版本默認安裝python 2.6.6,安裝2.7版本需要使用wget下載源碼包,下載完進行解壓並在解壓文件夾 中進行安裝操作,安裝完成進入python 1.2 windows安裝python 官

java中的try-catch-finnal異常處理學習筆記

不堪 java sha highlight 抽取 最終 throwable 關鍵字 學習筆記 一、異常概述 異常:Exception,是在運行發生的不正常情況。 原始異常處理: if(條件) {   處理辦法1  處理辦法2  處理辦法3} if(條件) {   處理辦法

python文件操作學習筆記

python-文件操作學習筆記#文件操作:讀:f = open("/Users/zhouhaijun/python/01.py","r")x = f.read()print x寫:f = open("/Users/zhouhaijun/python/file_01.py","wb")f.write("ok")

json學習筆記(一)

對象 ide 筆記 循環 ntb flag 刪除對象 目前 3.5 1、JSON簡介: JSON: JavaScript Object Notation(JavaScript 對象表示法) JSON 是存儲和交換文本信息的語法。類似 XML。 JSON 比 XML 更小、更

js進行到底:node學習筆記2

客戶端 系統 用戶 是個 down 語言 計算 rmi 地址 node重要API之FS——CLI編程初體驗 所謂的“fs”就是file system! 當下幾乎任何一門編程語言都會提供對文件系統讀寫的API,比如c語言的open()函數。 而文件系統讀寫API最廣泛的用處就

js進行到底:node學習筆記5

引用 form all com 錯誤頁面 cnblogs 框架 isp 註意 HTTP開發之Connect工具集——中間件 繼學習node.js的TCP API和HTTP API之後,node.js web開發進入了正軌,但這就好像Java的servlet一樣,我們不可能使

Python:GUI之tkinter學習筆記2界面布局顯示

lB cfi ipa die uia 是否 打包 top adp 相關內容: pack 介紹 常用參數 使用情況 常用函數 grid 介紹 常用參數 使用情況 常用函數 place 介紹 常用參數 使用情況 常用函數 首發時間:2

Python:GUI之tkinter學習筆記之messagebox、filedialog

files try OS line pad 錯誤 mes false erro 相關內容: messagebox 介紹 使用 filedialog 介紹 使用 首發時間:2018-03-04 22:18 messagebox: 介紹:mes

python新手第一天學習筆記-第一個ptyhon程序和python變量

ali color 輸出 3.5 pri -- class -i bsp 一、python 的註釋和第一個python 程序 : 1、單行註釋 # Author Xiajq 2、多行註釋 ‘‘‘ ------------註釋內容----------------------

Python第三周 學習筆記(2)

學習筆記選擇排序: 時間復雜度O(n**2) 沒有辦法知道當前輪是否已經達到排序要求,但是可以知道極值是否在目標索引位置上 遍歷次數1,...,n-1之和n(n-1)/2 對比冒泡法:減少了交換次數,提高了效率,性能略好 方法三、四實際上降低的是平均時間復雜度 方法一: nums = [1, 2, 6,

Python第三周 學習筆記(1)

學習筆記;內建函數;字典;列表解析式字典 key-value鍵值對的數據的集合 可變的、無序的、key不重復 初始化: d = dict() d = {} d = dict(**kwargs) 如:d = dict(a=1,b=2) dict(iterable, **kwarg) 使用可叠代對象和na