本篇內容介紹了“Python怎么讀寫JSON文件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
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文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。