【Day 8】Python JSON与demjson

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


<<:  [重构倒数第23天] - Tab 的 page 加入 router

>>:  Day08 - Docker 101 Image 建置篇

android studio 30天学习笔记 -day 2 -icon

在这次的专案开发有用到vector asset,里面有一些可以应用在专案开发的向量图形,如以下图形:...

Angular#2 专案:新增 与 启动

Angular 1. 新增专案 ng new [project-name] 范例ng new sys...

免下载、免费!Windows 10 内建的萤幕录影工具总整理

过去不管是手机或电脑想要萤幕录影,都需要依靠第三方程序来执行,而现在只要是新型的装置其实都有内建的萤...

DAY 10 - 可爱小暴龙

大家好~ 我是五岁~ 今天要来画卡通化的可爱小暴龙~ 因为要画成Q版的可爱暴龙,所以要给他圆圆的大头...

Rust-特徵(Trait)(一)

什麽是特徵 根据官网的解释就是 特徵会告诉编译器特定型别与其他型别共享的功能。可以使用特徵定义来抽象...