91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

    深州市| 冷水江市| 武陟县| 成武县| 鄱阳县| 枣阳市| 黎川县| 虹口区| 洛南县| 南丹县| 伊金霍洛旗| 宽甸| 雷山县| 尉氏县| 和顺县| 卓尼县| 弋阳县| 称多县| 二连浩特市| 皋兰县| 宜黄县| 浮梁县| 巴楚县| 嫩江县| 察隅县| 阿坝| 连山| 屯留县| 江华| 政和县| 封丘县| 北碚区| 上思县| 大田县| 新邵县| 乐平市| 广平县| 罗甸县| 庐江县| 大化| 芦溪县|