iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
自我挑戰組

轉職軟體工程師的543系列 第 8

【Day 8】Python JSON與demjson

  • 分享至 

  • xImage
  •  

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
https://ithelp.ithome.com.tw/upload/images/20210908/20140399SpeXuyvJ8D.jpg

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)
https://ithelp.ithome.com.tw/upload/images/20210908/20140399gPwjbKMlYd.jpg

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)
https://ithelp.ithome.com.tw/upload/images/20210908/20140399x5pPWCxGe6.jpg


上一篇
【Day 7】GIT版本還原及回歸
下一篇
【Day 9】Python 打包程式
系列文
轉職軟體工程師的54330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言