JSON模組(Python內建)
說明:主要用來讀寫JSON檔案。
何謂JSON?
說明:JSON全名是JavaScript Object Notation,副檔名是json,是依照JavaScript物件語法的資料格式。
JSON的資料格式分為兩種,一種是物件(object),轉換後相當於是Python中的字典(dict){};
一種是陣列(array),轉換後則相當於是Python中的列表(list,tuple)[]。
可以寫入字串、數字、布林、陣列、物件、null類型。
常用函式:
{}和[]括號內,字串須使用雙引號,否則將無法執行。
json.dumps() 從 Python 轉換為 JSON格式
json.loads() 從 JSON格式 轉換為 Python
函式須使用到兩個參數,否則將無法執行。
json.dump() 從 Python 轉換為 JSON格式,通常會搭配.write()
json.load() 從 JSON格式 轉換為 Python,通常會搭配.read()
======================================================
demjson模組(第三方套件pip install demjson)
說明:主要用來讀寫JSON檔案,比起JSON模組能夠解析較不規則的文本內容,也能生成較嚴格的JSON文本。
常用函式:
{}和[]括號內,字串不論是否使用雙引號都可以執行。
demjson.encode() 從 Python 轉換為 JSON格式
demjson.decode() 從 JSON格式 轉換為 Python
import json
#json.dumps() 從 Python 轉換為 JSON格式
Python_datas = { "name":"Alice", "age":35, "city":"Taipei"}
print("Python 轉換為 JSON: ",json.dumps(Python_datas))
#json.loads() 從 JSON格式 轉換為 Python
JSON_datas = '{ "name":"Alice", "age":35, "city":"Taipei"}'
print("JSON 轉換為 Python: ", json.loads(JSON_datas))
#json.dump() 搭配.write(),從 Python 轉換為 JSON格式
Python_data = {"name":"Alice", "age":35, "city":"Taipei"}
with open('test.txt','w') as f:
Python_result = json.dump(Python_data,f)
JSON_data = {"name":"Alice", "age":35, "city":"Taipei"}
with open('test.txt','r') as f:
JSON_result = json.load(f)
print(JSON_result)
import demjson
#demjson.encode() 從 Python 轉換為 JSON格式
Python_data1 = { 'x':'Alice', 'age':35, 'city':'Taipei'}
Python_data2 = { "x":"Alice", "age":35, "city":"Taipei"}
demjson.encode1 = demjson.encode(Python_data1)
demjson.encode2 = demjson.encode(Python_data2)
print(demjson.encode1)
print(demjson.encode2)
#demjson.decode() 從 JSON格式 轉換為 Python
json_data1 = "{x:1, y:2, z:3}"
json_data2 = "{'x':1, 'y':2, 'z':3}"
json_data3 = '{"x":1, "y":2, "z":3}'
demjson_data1 = demjson.decode(json_data1)
demjson_data2 = demjson.decode(json_data2)
demjson_data3 = demjson.decode(json_data3)
print(demjson_data1)
print(demjson_data2)
print(demjson_data3)