<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
JSON 全稱 JavaScript Object Notation 。是處理物件文字語法的 JavaScript 程式語言的一個子集。JSON 早已成為與語言無關的語言,並作為自己的標準存在。
{ "data":[ { "id": "1", "name": "A同學", "state": "1", "createTime": "2020-01-21" }, { "id": "2", "name": "B同學", "state": "1", "createTime": "2020-01-21" }, { "id": "3", "name": "C同學", "state": "0", "createTime": "2020-01-21" } ] }
Python 帶有一個內建包 json,用於對 JSON 資料進行編碼和解碼。
參照方式。
import json
JSON 編碼的過程通常稱為序列化。該術語是指將資料轉換為一系列位元組通過網路儲存或傳輸。反序列化是解碼以 JSON 標準儲存或交付的資料的互動過程。
直觀的轉換將簡單的 Python 物件轉換為 JSON。
Python | JSON |
---|---|
dict | object |
list,tuple | array |
str | string |
int, long,float | number |
True | true |
False | false |
None | null |
建立一個簡單的資料。
data = { "data":[ { "id": "1", "name": "A同學", "state": "1", "createTime": "2020-01-21" }, { "id": "2", "name": "B同學", "state": "1", "createTime": "2020-01-21" }, { "id": "3", "name": "C同學", "state": "0", "createTime": "2020-01-21" } ] }
資料直接以文字方式儲存。
with open("data_file.json", "w") as f: json.dump(data, f)
資料直接以字串方式使用。
json_str = json.dumps(data)
在 json 庫中使用 load() 和 oads() 用於將 JSON 編碼資料轉換為 Python 物件。
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number(整數) | int |
number(浮點數) | float |
true | True |
false | False |
null | None |
讀取寫入json檔案的資料。
with open("data_file.json", "r") as read_file: data = json.load(read_file)
字串資料。
json_string = """ { "data":[ { "id": "1", "name": "A同學", "state": "1", "createTime": "2020-01-21" }, { "id": "2", "name": "B同學", "state": "1", "createTime": "2020-01-21" }, { "id": "3", "name": "C同學", "state": "0", "createTime": "2020-01-21" } ] } """ data = json.loads(json_string)
通過網際網路的資料抓取解析文字資訊。
# 秦皇島煤炭網微博 import requests from bs4 import BeautifulSoup import datetime url = "http://news.cqcoal.com/manage/newsaction.do?method:webListPageNewsArchivesByTypeid" post_param = {'pageNum':'1','pageSize':'20','jsonStr':'{"typeid":"238"}'} return_data = requests.post(url,data =post_param) return_data = return_data.content.decode("utf-8") import json for i in json.loads(return_data)["rows"]: title = i["title"] url = "http://news.cqcoal.com/blank/nc.jsp?mid="+str(i["id"]) timeStamp=int(i["pubdate"]) dateArray = datetime.datetime.utcfromtimestamp(timeStamp) date = dateArray.strftime("%Y-%m-%d") print(title,url,date)
自定義資料。
import json # 基礎的數位字典 py_object = {"c": 0, "b": 0, "a": 0} # JSON 編碼 json_string = json.dumps(py_object) print(json_string) print(type(json_string)) {"c": 0, "b": 0, "a": 0} <class 'str'> # JSON 解碼 py_obj = json.loads(json_string) print(py_obj) print(type(py_obj)) {'c': 0, 'b': 0, 'a': 0} <class 'dict'>
如果遇到 TypeError: Object of type SampleClass is not JSON serializable 的錯誤就需要自定義編碼和解碼了。
import json class Student: def __init__(self, name, roll_no, address): self.name = name self.roll_no = roll_no self.address = address def to_json(self): ''' 將此類的範例轉換為 json ''' return json.dumps(self, indent = 4, default=lambda o: o.__dict__) class Address: def __init__(self, city, street, pin): self.city = city self.street = street self.pin = pin address = Address("Bulandshahr", "Adarsh Nagar", "203001") student = Student("Raju", 53, address) # 編碼 student_json = student.to_json() print(student_json) print(type(student_json)) { "name": "Raju", "roll_no": 53, "address": { "city": "Bulandshahr", "street": "Adarsh Nagar", "pin": "203001" } } <class 'str'> # 解碼 student = json.loads(student_json) print(student) print(type(student)) {'name': 'Raju', 'roll_no': 53, 'address': {'city': 'Bulandshahr', 'street': 'Adarsh Nagar', 'pin': '203001'}} <class 'dict'>
以上就是Python讀寫JSON檔案的操作詳解的詳細內容,更多關於Python讀寫JSON的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45