當前位置:首頁 » 編程語言 » python處理json文件

python處理json文件

發布時間: 2023-08-04 18:49:03

1. python爬蟲(七)數據處理方法之JSON

JSON 指的是 JavaScript 對象表示法(JavaScript Object Notation),是輕量級的文本數據交換格式,且具有自我描述性,更易理解。
JSON看起來像python類型(列表,字典)的字元串。

在之前的文章中,我們說到了怎麼用response的方法,獲取到網頁正確解碼後的字元串。如果還有不懂的,可以先閱讀 Python爬蟲(三)Requests庫 。接下來以有道翻譯為例子,說說怎麼通過網頁解碼後的字元串,提取到翻譯結果。

再結合上述有道翻譯的例子,得到字典類型的返回結果,並提取出來翻譯結果。

將上述例子的dict_json換成str字元串,再寫入文本中。

執行完上述的程序,會得到一個fanyi.txt的文件,其結果如下:{"type": "ZH_CN2EN", "errorCode": 0, "elapsedTime": 1, "translateResult": [[{"src": "\u4eba\u751f\u82e6\u77ed\uff0c\u6211\u7528python", "tgt": "Life is too short, I use python"}]]}。這樣子的一份文檔,中文部分顯示的是二進制,且格式非常不利於閱讀,這並不是我們想要的結果。好在json.mps()為我們提供的兩個方法,以幫助我們更好閱讀文檔。
1.ensure_ascii,能夠讓中文顯示成中文;
2.indent,能夠讓下一行在第一行的基礎上空格。
其用法如下:

2. python3 讀excel轉Json文件

from xlrd import *

import json

# 參考1-字典、列表轉JSON:https://www.cnblogs.com/longchang/p/10904850.html

# 參考2-JSON直接保存到文件:https://www.cnblogs.com/miyatest/p/9603897.html

# 從excel讀取數據存放到列表中

def readExcel():

    keyData=[]   # 定義空List,用於保存讀到的行數據

    excelBook=open_workbook("data.xlsx")    # 從當前目錄讀取《data.xlsx》文件

    table=excelBook.sheet_by_name("data")  # 從《data.xlsx》中找名為 data的sheet頁

    rowNum=table.nrows  # 獲取《data.xlsx》-->data頁中 行數

    colNum=table.ncols  # 獲取《data.xlsx》-->data頁中 列數

    colName=table.row_values(0)    # 取第一行數據,即列名,colName 是個List

    # print(colName)

    if rowNum<=1:

        print("沒數據...")    # 如果行數<=1,說明沒有數據,因第1行一般定義為列名

    else:

        for i in range(rowNum-1):

            d={}    # 定義空字典,用於存放獲取到數據

            values=table.row_values(i+1)    # 獲取每行的數據,values最終是個List

            # print(values)

            for x in range(colNum):    #  每個列作為字典的一組數據

                d[colName[x]]=values[x]   #  用colName值作為字典的key,values值作業為字典的value

                # print(d)

            keyData.append(d)    # 讀完一行數據保存到字典,再保存到列表

    # print(keyData)

    return keyData   #  全部數據讀完並保存到列表後,返回

#  列表轉Json

def listToJson():

     keyParam=readExcel()    # 調用從excel讀取數據的函數,把數據保存到列表

    CaseConfig=open("CaseConfig.json", mode="w+")    #  創建json文件

    CaseConfig.write('{\n"key":')    # 往json文件中寫數據,先寫json的格式的{,和模塊名

      # 把從excel讀取的數據轉成Json格式保存入 CaseConfig,indent=4是進行格式化,使json排版好看

    json.mp(keyParam, CaseConfig, indent=4)  

    CaseConfig.write('\n}')   # 往json文件中寫數據,寫結尾的 },寫前先換行

    CaseConfig.close()    # 關閉json文件,必要!!

if __name__ == '__main__':        #  調試調用

    listToJson()

3. python中json處理

python中json文件處理涉及的四個函數json.loads()、json.mps()、json.load()、json.mp()。

1)json.mps()

    將一個Python數據類型dict進行json格式的編碼(字典->字元串)

    eg:

    age_dict = {'age1':'12', 'age2':'15'}

    json_info = json.mps(age_dict)

    print("json_info = {}".format(json_info))

    print("json_info type = {}".format(type(json_info)))

2)json.loads()

    將json格式數據轉換為dict(字元串->字典)

    json_age ='{"age1": "12", "age2": "15"}'

    dict_age = json.loads(json_info)

    print("json_age = {}".format(json_age))

    print("dict_age type = {}".format(str(type(dict_age))))

3)json.load()

    讀取文件,將里json格式字元串轉化為dict

    with open(test.json, 'r') as file:

        contents = json.load(file)

    print(contents)

4)json.mp()

    將dict類型轉換為json格式字元串,存入文件

    number = [1, 2, 3, 5]

    file = 'number.json'

    with open(file , 'w') as file:

        json.mp(number, file)

熱點內容
androidbug 發布:2025-02-06 23:31:56 瀏覽:49
php數字判斷 發布:2025-02-06 23:17:40 瀏覽:40
優路教育伺服器連接不上怎麼回事 發布:2025-02-06 23:03:49 瀏覽:141
資料庫加速 發布:2025-02-06 23:02:14 瀏覽:565
蘋果ipodpro如何連接安卓手機 發布:2025-02-06 23:00:56 瀏覽:529
android格式化sd卡 發布:2025-02-06 23:00:50 瀏覽:982
郝斌資料庫 發布:2025-02-06 22:44:57 瀏覽:182
全息存儲器 發布:2025-02-06 22:43:51 瀏覽:117
游戲源碼如何使用 發布:2025-02-06 22:43:40 瀏覽:716
表與資料庫 發布:2025-02-06 22:42:47 瀏覽:440