最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)提取JSON文件中指定數(shù)據(jù)并保存至CSV或Excel內

 更新時間:2023年08月31日 10:43:54   作者:瘋狂學習GIS  
這篇文章主要介紹了如何基于Python語言實現(xiàn)讀取JSON格式的數(shù)據(jù),并將提取到的數(shù)據(jù)保存到.csv格式或.xlsx格式的表格文件中,感興趣的小伙伴可以了解下

本文介紹基于Python語言,讀取JSON格式的數(shù)據(jù),提取其中的指定內容,并將提取到的數(shù)據(jù)保存到 .csv 格式或 .xlsx 格式的表格文件中的方法。

JSON格式的數(shù)據(jù)在數(shù)據(jù)信息交換過程中經(jīng)常使用,但是相對而言并不直觀;因此,有時我們希望將JSON格式的數(shù)據(jù)轉換為Excel表格文件數(shù)據(jù);這里就介紹一下基于Python語言,將JSON數(shù)據(jù)轉換為 .csv 格式與 .xlsx 格式數(shù)據(jù)的方法。

首先,來看一下我們的需求。我們現(xiàn)在基于Postman軟件,獲得了某一個網(wǎng)站中,以JSON格式記錄的大量數(shù)據(jù),其中部分數(shù)據(jù)如下圖所示(這里是大量數(shù)據(jù)樣本中的 1 條樣本)。這里關于Postman獲取網(wǎng)站數(shù)據(jù)的方法,大家如果有需要,可以參考文章Postman軟件基本用法:瀏覽器復制請求信息并導入到軟件從而測試、發(fā)送請求

我們現(xiàn)在希望實現(xiàn)的是,將上述JSON數(shù)據(jù)中的文字部分(也就是有價值的信息部分)提取出來,并保存在一個Excel表格文件中;其中,不同的就是不同的信息屬性,不同的就是不同的樣本。

明確了需求,我們就可以開始撰寫代碼。這里需要注意,在本文代碼中需要用到Pythonjson 庫,關于這一個庫的配置,大家可以參考文章Mac系統(tǒng)Anaconda環(huán)境配置Python的json庫。

首先,介紹將JSON格式數(shù)據(jù)轉換為 .csv 文件數(shù)據(jù)的代碼,具體如下。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 29 10:22:23 2023
@author: fkxxgis
"""
import json
import csv
with open('/Users/didi/Documents/response.json', 'r') as f:
    data = json.load(f)
with open('/Users/didi/Documents/Data_All.csv', 'w', newline='', encoding='utf-8') as csvfile:
    csvwriter = csv.writer(csvfile)
    header = ["xkzh", "qymc", "gmpZsh", "cym", "shren", "shrq"]
    csvwriter.writerow(header)
    for row in data['rows']:
        xkzh = row['xkzh']
        qymc = row['qymc']
        gmpZsh = row['gmpZsh']
        cym = row['cym']
        shren = row['shren']
        shrq = row['shrq']
        csvwriter.writerow([xkzh, qymc, gmpZsh, cym, shren, shrq])

首先需要說明,上述代碼在執(zhí)行后,我打開新建的 .csv 格式文件,會出現(xiàn)中文字符亂碼的情況,如下圖所示。

但是用本文接下來的導出為 .xlsx 格式文件的代碼就不會有這個問題,所以我當時沒有進一步研究亂碼出現(xiàn)的原因,就直接用了后續(xù)的代碼了。如果大家感興趣,可以對上述代碼加以進一步研究。

上述代碼的具體含義如下。首先,我們通過 with open('/Users/didi/Documents/response.json', 'r') as f: ,打開名為 response.json 的文件(也就是存儲了我們JSON格式數(shù)據(jù)的文件),并將其賦值給變量 f ;這里的 'r' 表示以只讀模式打開文件。隨后,代碼 data = json.load(f) 使用 json.load() 函數(shù)加載JSON文件中的數(shù)據(jù),并將其存儲在變量 data 中。

接下來,打開名為 Data_All.csv 的文件,并將其賦值給變量 csvfile 'w' 表示以寫入模式打開文件。 newline='' encoding='utf-8' 用于設置寫入 .csv 文件時的換行和編碼方式。隨后, csvwriter = csv.writer(csvfile) 表示創(chuàng)建一個 .csv 寫入器,將數(shù)據(jù)寫入 csvfile 文件。

其次,我們即可定義 .csv 文件的表頭(列名),以列表形式存儲在 header 變量中;隨后,通過 csvwriter.writerow(header) 將表頭寫入 .csv 文件。

緊接著,對于 data 中的每一行數(shù)據(jù),執(zhí)行以下操作—— xkzh = row['xkzh'] 就表示從當前行的字典中提取鍵為 xkzh 的值,并將其賦值給變量 xkzh ;接下來的其他幾行也是這個意思。最后,我們將提取的數(shù)據(jù)以列表的形式寫入 .csv 文件的一行。

接下來,我們介紹將JSON格式數(shù)據(jù)轉換為 .xlsx 文件數(shù)據(jù)的代碼,具體如下。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 29 10:42:26 2023
@author: fkxxgis
"""
import json
from openpyxl import Workbook
with open('/Users/didi/Documents/Veterinary/response_2.json', 'r') as f:
    data = json.load(f)
wb = Workbook()
ws = wb.active
header = ["qymc", "tym", "gg", "spm", "pzwh", "zxbz", "pzrq", "yxq", "sxyy", "bgqk"]
ws.append(header)
for row in data['rows']:
    qymc = row['qymc']
    tym = row['tym']
    gg = row['gg']
    spm = row['spm']
    pzwh = row['pzwh']
    zxbz = row['zxbz']
    pzrq = row['pzrq']
    yxq = row['yxq']
    sxyy = row['sxyy']
    bgqk = row['bgqk']
    ws.append([qymc, tym, gg, spm, pzwh, zxbz, pzrq, yxq, sxyy, bgqk])
wb.save('/Users/didi/Documents/Veterinary/Result_2.xlsx')

上述代碼的含義也比較簡單。

首先,我們打開名為 response_2.json 的文件,并將其賦值給變量 f 'r' 表示以只讀模式打開文件。隨后的 data = json.load(f) 表示使用 json.load() 函數(shù)加載JSON文件中的數(shù)據(jù),并將其存儲在變量 data 中。

接下來,創(chuàng)建一個新的Excel工作簿,將其賦值給變量 wb ;隨后,獲取工作簿的活動工作表,并將其賦值給變量 ws 。

緊接著,我們定義Excel文件的表頭(列名),以列表形式存儲在 header 變量中,并將表頭寫入Excel文件的第一行。隨后,對于 data 中的每一行數(shù)據(jù)(假設每一行都是一個字典),執(zhí)行以下操作——從當前行的字典中提取特定字段的值,并將它們分別賦值給對應的變量。接下來,我們將提取的數(shù)據(jù)以列表的形式寫入Excel文件的一行。

最后,即可將Excel工作簿保存為名為 Result_2.xlsx 的文件。

運行上述代碼,我們即可在 Result_2.xlsx 文件中看到提取到的數(shù)據(jù),其中每一行就是一個樣本,每一列表示一種屬性,且沒有出現(xiàn)亂碼的情況。如下圖所示。

至此,大功告成。

歡迎關注:瘋狂學習GIS

到此這篇關于Python實現(xiàn)提取JSON文件中指定數(shù)據(jù)并保存至CSV或Excel內的文章就介紹到這了,更多相關Python提取JSON數(shù)據(jù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 如何使用python請求傳遞csrftoken

    如何使用python請求傳遞csrftoken

    這篇文章主要介紹了如何使用python請求傳遞csrftoken問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python中比較兩個列表的實例方法

    python中比較兩個列表的實例方法

    在本篇文章里小編給各位分享了關于python中比較兩個列表的實例方法以及相關代碼,需要的朋友們參考下。
    2019-07-07
  • Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError

    Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError

    這篇文章主要介紹了Python使用QQ郵箱發(fā)送郵件報錯smtplib.SMTPAuthenticationError,簡單介紹了python 發(fā)送郵件的步驟,需要的朋友可以參考下
    2019-12-12
  • Python實現(xiàn)UDP程序通信過程圖解

    Python實現(xiàn)UDP程序通信過程圖解

    這篇文章主要介紹了Python實現(xiàn)UDP程序通信過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Python中的shape()詳解

    Python中的shape()詳解

    這篇文章主要介紹了Python中的shape()詳解,在debug深度學習相關代碼的時候,很容易出現(xiàn)shape()這樣形式的東西,用來告知輸出數(shù)據(jù)的形式,需要的朋友可以參考下
    2023-08-08
  • Python與CNN的碰撞詳解

    Python與CNN的碰撞詳解

    CNN,即卷積神經(jīng)網(wǎng)絡,主要用于圖像識別,分類。由輸入層,卷積層,池化層,全連接層(Affline層),Softmax層疊加而成。卷積神經(jīng)網(wǎng)絡中還有一個非常重要的結構:過濾器,它作用于層與層之間(卷積層與池化層),決定了怎樣對數(shù)據(jù)進行卷積和池化
    2022-12-12
  • Python?cachetools實現(xiàn)緩存過期策略

    Python?cachetools實現(xiàn)緩存過期策略

    cachetools?是一個功能強大的?Python?庫,用于實現(xiàn)多種緩存策略,幫助開發(fā)者優(yōu)化程序性能,下面小編就來和大家詳細講講cachetools的原理與應用吧
    2025-06-06
  • Python中如何控制小數(shù)點精度與對齊方式

    Python中如何控制小數(shù)點精度與對齊方式

    在 Python 編程中,數(shù)據(jù)輸出格式化是一個常見的需求,尤其是在涉及到小數(shù)點精度和對齊方式時,下面小編就來為大家介紹一下如何在 Python 中實現(xiàn)這些功能吧
    2025-03-03
  • Python程序設計入門(2)變量類型簡介

    Python程序設計入門(2)變量類型簡介

    這篇文章主要介紹了Python變量類型,需要的朋友可以參考下
    2014-06-06
  • 深入了解Python中pop和remove的使用方法

    深入了解Python中pop和remove的使用方法

    這篇文章主要介紹了深入了解Python中pop和remove的使用方法,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論

文成县| 乃东县| 尼玛县| 汽车| 景宁| 游戏| 阿勒泰市| 黎川县| 沾益县| 壤塘县| 宁强县| 伊春市| 襄垣县| 稷山县| 西藏| 临夏县| 伊宁县| 建昌县| 黄陵县| 宝坻区| 中阳县| 霍城县| 丹巴县| 石狮市| 望都县| 保定市| 建宁县| 阿合奇县| 独山县| 缙云县| 西和县| 封丘县| 舞阳县| 莲花县| 阿克陶县| 郁南县| 枣庄市| 玛曲县| 日照市| 射阳县| 松桃|