中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么讀寫JSON文件

發布時間:2022-04-12 15:21:53 來源:億速云 閱讀:349 作者:iii 欄目:開發技術

本篇內容介紹了“Python怎么讀寫JSON文件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    JSON

    JSON 起源

    JSON 全稱 JavaScript Object Notation 。是處理對象文字語法的 JavaScript 編程語言的一個子集。JSON 早已成為與語言無關的語言,并作為自己的標準存在。

    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

    Python 帶有一個內置包 json,用于對 JSON 數據進行編碼和解碼。

    Python怎么讀寫JSON文件

    引用方式。

    import json

    JSON 編碼的過程通常稱為序列化。該術語是指將數據轉換為一系列字節通過網絡存儲或傳輸。反序列化是解碼以 JSON 標準存儲或交付的數據的交互過程。

    序列化 JSON

    直觀的轉換將簡單的 Python 對象轉換為 JSON。

    PythonJSON
    dictobject
    list,tuplearray
    strstring
    int, long,floatnumber
    Truetrue
    Falsefalse
    Nonenull

    簡單的序列化示例

    創建一個簡單的數據。

    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 反序列化

    在 json 庫中使用 load() 和 oads() 用于將 JSON 編碼數據轉換為 Python 對象。

    JSONPython
    objectdict
    arraylist
    stringstr
    number(整數)int
    number(浮點數)float
    trueTrue
    falseFalse
    nullNone

    簡單的反序列化示例

    讀取寫入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)

    Python怎么讀寫JSON文件

    編碼和解碼

    自定義數據。

    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文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    始兴县| 德昌县| 金堂县| 恩平市| 贵州省| 富平县| 丰台区| 黑山县| 时尚| 加查县| 永新县| 绥化市| 富裕县| 西贡区| 渝中区| 漳浦县| 吕梁市| 师宗县| 襄汾县| 永善县| 上虞市| 新野县| 陕西省| 抚顺县| 杭州市| 衡阳县| 隆德县| 田东县| 平凉市| 墨竹工卡县| 额尔古纳市| 开江县| 察隅县| 丰城市| 郎溪县| 社会| 疏勒县| 贵阳市| 肇州县| 屏东县| 泰安市|