python3處理JSON數據

2021-01-07 一葉孤沙

前言

使用python做開發,經常會遇到json數據解析問題,本文,我將帶領大家學習使用python3處理json數據,並將字典反轉義為json數據。

一、基礎知識

1.什麼是JSON

JSON是一種輕量級的數據交換格式,便於任何機器理解,採用完全獨立於程式語言的文本格式來存儲和表示數據。

2.JSON格式

JSON具有以下這些形式:

對象是一個無序的「『名稱/值』對」集合。一個對象以 {左括號 開始, }右括號 結束。每個「名稱」後跟一個 :冒號 ;「『名稱/值』 對」之間使用 ,逗號 分隔。

舉例分析如下:

{"name":"Brown", "age":18}

{"name":"Brown","famliy":{"mother":"Serinda","father":"Mike"}}

{"name":"Brown","pet":["dog","cat"]}

來一個複雜的son格式數據:

{"name": "中國", "province": [{"name": "黑龍江","cities": {"city": ["哈爾濱", "大慶"]}}, {"name": "廣東","cities": {"city": ["廣州", "深圳", "珠海"]}}, {"name": "臺灣","cities": {"city": ["臺北", "高雄"]}}, {"name": "新疆","cities": {"city": ["烏魯木齊"]}}]}

3.pyhton的JSON庫

二、實例運行

1.解析最簡單的json數據

程序:

# -*- coding: utf-8 -*-

import json

json_str = "{\"name\":\"Brown\",\"age\":16}"

if __name__ == '__main__':

json_dict = json.loads(json_str)

print(json_dict)

運行結果:

2.解析一個複雜一點的json數據

程序:

# -*- coding: utf-8 -*-

import json

json_str = "{\"name\": \"中國\", \"province\": [{\"name\": \"黑龍江\",\"cities\": {\"city\": [\"哈爾濱\", \"大慶\"]}}, {\"name\": \"廣東\",\"cities\": {\"city\": [\"廣州\", \"深圳\", \"珠海\"]}}, {\"name\": \"臺灣\",\"cities\": {\"city\": [\"臺北\", \"高雄\"]}}, {\"name\": \"新疆\",\"cities\": {\"city\": [\"烏魯木齊\"]}}]}"

if __name__ == '__main__':

json_dict = json.loads(json_str)

print(json_dict)

# 使用字典 得出廣東的核心城市

province = json_dict["province"]

for obj in province:

if ("廣東" == obj["name"]):

print(obj["cities"]["city"])

運行結果:

本例中,我們不僅將json字符串解析為python字典格式,並找出廣東省的核心城市

3.將字典數據轉換為json數據

程序:

# -*- coding: utf-8 -*-

import json

json_str = "{\"name\": \"中國\", \"province\": [{\"name\": \"黑龍江\",\"cities\": {\"city\": [\"哈爾濱\", \"大慶\"]}}, {\"name\": \"廣東\",\"cities\": {\"city\": [\"廣州\", \"深圳\", \"珠海\"]}}, {\"name\": \"臺灣\",\"cities\": {\"city\": [\"臺北\", \"高雄\"]}}, {\"name\": \"新疆\",\"cities\": {\"city\": [\"烏魯木齊\"]}}]}"

if __name__ == '__main__':

print("################ json.loads() ################")

json_dict = json.loads(json_str)

print(json_dict)

# 使用字典 得出廣東的核心城市

province = json_dict["province"]

for obj in province:

if ("廣東" == obj["name"]):

print(obj["cities"]["city"])

# 將字典數據轉換為json數據

print("################ json.dumps() ################")

str_data = json.dumps(json_dict, ensure_ascii=False)

print(str_data)

運行結果:

可以看到本例中,調用json.dumps()後,原來json字符串中的中文數字發生了編碼格式的變化,這是由於json.dumps()默認採用ascii格式,關閉ascii即可,修改上述json.dumps(json_dict)為:

str_data = json.dumps(json_dict, ensure_ascii=False)

運行結果如下:

三、結語

(1)josn.dumps編碼格式問題

如果需要將帶有中文的字典通過json.dumps轉換為JSON字符串,需要添加ensure_ascii=False參數。

小驛:

寄語:世界上最遠的距離是魚與飛鳥的距離,一個在天上,一個卻深淺海底!

相關焦點

  • 如何利用Python處理JSON格式的數據,建議收藏!!!
    數據分析與籃球JSON數據格式在我們的日常工作中經常會接觸到,無論是做爬蟲開發還是一般的數據分析處理,今天,小編就來分享一下當數據接口是JSON格式時,如何進行數據處理進行詳細的介紹,內容分布如下JSON(JavaScript Object Notation, JS對象簡譜)是一種輕量級的數據交換格式,通常是以鍵值對的方式呈現,其簡潔和清晰的層次結構使得
  • python讀寫json文件
    輸出結果,最外圍是一個字典,而字典的值既可以是基本的數據類型,比如數值,字符串,又可以是列表,字典等數據結構,相互嵌套,就構成了整個json文件。對於json文件的讀寫,也稱之為json的編碼和解碼。所謂解碼,就是將文字格式的json轉換為程式語言中的對象,編碼則相反,將程式語言中的對象轉換為json格式的字符串。
  • 乾貨|如何利用Python處理JSON格式的數據,建議收藏!
    本文轉載自【微信公眾號:數據分析與籃球,ID:dylanxia2019】經微信公眾號授權轉載,如需轉載與原文作者聯繫JSON數據格式在我們的日常工作中經常會接觸到,無論是做爬蟲開發還是一般的數據分析處理,本文小編就來分享一下當數據接口是JSON
  • 如何利用Python處理JSON格式的數據接口(詳細版)
    在網際網路公司,當我們需要其他團隊提供數據支持時,一般沒有團隊會直接給你一個資料庫或者數據表的權限,道理很簡單,一是數據安全性,二是增加自身工作量。通常情況下,提供一個數據接口,數據格式為JSON。本篇將對數據接口為JSON格式時,如何進行數據處理進行詳細的介紹,內容分如下兩個部分:JSON(JavaScript Object Notation, JS 對象簡譜)是一種輕量級的數據交換格式。它基於 ECMAScript的一個子集,採用完全獨立於程式語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得JSON成為理想的數據交換語言。
  • Python處理json總結
    JSON:JavaScript Object Notation 【JavaScript 對象表示法】JSON 是一種輕量級的數據交換格式,完全獨立於任何程序語言的文本格式。一般,後臺應用程式將響應數據封裝成JSON格式返回。JSON的基本語法如下:JSON名稱/值對。
  • Stata 網絡數據爬取:JSON篇
    —— Stata、高德接口與地理編碼」(RStata 線上培訓班課程)課程中就已經介紹過 Stata 處理 json 格式的數據的方法了,因為高德地圖接口返回的數據就是 json 格式的。今天我將通過最近我搜集的一些案例來演示如何進行網頁分析以及使用 Stata 處理 JSON 數據。注意:由於 tssc 已經下架,大家可以通過附件中的離線安裝包安裝本文提到的 Stata 外部命令。
  • Python零基礎編程——文件、JSON數據存儲
    ("-:"+line.rstrip())#並去掉空格2-文件寫入filePath = 'D:\DevPython\Works\PythonPrime\input.txt'yourContext1 = input("請輸入第1行,輸完按回車鍵")yourContext2 = input("請輸入第2行,輸完按回車鍵")#異常處理
  • Python 讀取 JSON 數據的騷操作
    json 模塊提供了一種很簡單的方式來編碼和解碼 JSON 數據。其中兩個主要的函數是 json.dumps() 和 json.loads() 下面演示如何將一個 Python 數據結構轉換為 JSONimport jsondata = {'name' : 'ACME','shares' : 100,'price' : 542.23}json_str = json.dumps(data)下面演示如何將一個
  • Python之數據序列化(json、pickle、shelve)
    dumps()dump()loads()load()shelve專門用於將Python數據類型的數據持久化到磁碟,shelve是一個類似dict的對象,操作十分便捷open() 二、json模塊   大部分程式語言都會提供處理json數據的接口,Python 2.6開始加入了json模塊,且把它作為一個內置模塊提供
  • php讀取資料庫數據,並以json格式返回數據
    $conn) { die('連接失敗: ' . mysqli_error($conn)); }第二步查詢資料庫$json = '';$data = array(); $sql = "SELECT * FROM paging";//sql查詢語句 $result = mysqli_query($conn,$sql);第三步獲取查詢數據if($result){
  • (實用篇)PHP的serialize序列化數據與JSON格式化數據
    php自學與交流中心QQ群:435916459PHP的serialize是將變量序列化,返回一個具有變量類型和結構的字符串表達式,而JSON則是一種更輕、更友好的用於接口(AJAX、REST等)數據交換的格式。 其實兩者都是以一種字符串的方式來體現一種數據結構。那麼他們之間又有什麼區別呢?
  • mysql field json MySQL JSON 類型數據操作
    https://www.cnblogs.com/muscleape/p/10064031.html定義JSON欄位a類似 varchar,設置 JSON 主要將欄位的 type 是 json tags JSON, PRIMARY KEY (id));DESC muscleape;FieldtypeNullKeyDefaultExtraidtinyint(3)unsignedNOPRIauto_incrementcategoryjsonYES「」「」tagsjsonYES「」「」插入JSON1、插入 json
  • 用 Python 操作 JSON 類型數據詳解
    這些特性使JSON成為理想的數據交換語言。JSON官方網站http:JSON是一種基於文本,獨立於語言的輕量級數據交換格式。JSON的基本語法如下:1、JSON名稱/值對。JSON 數據的書寫格式是:名稱/值對。名稱/值對包括欄位名稱(在雙引號中),然後著是一個冒號(:),最後是值。
  • 數據類型和Json格式
    我恍然大悟,數據構成的最小單位原來如此簡單!難怪在程式語言中,只要有了數組(array)和對象(object)就能夠儲存一切數據了。我馬上想到了json。21世紀初,Douglas Crockford尋找一種簡便的數據交換格式,能夠在伺服器之間交換數據。
  • 使用jQuery的ajax技術+JSON數據格式+C#+SQL Server實現數據顯示
    ",type: "GET",//當返回json格式時,contentType不設置也是返不回的。contentType:返回的內容類型,如果設置的dataType是json,則一定要將contentType設置為:application/json,這樣才能正確返回json數據。success:表示成功請求後返回的回調函數。具有三個參數:data、status、XHR。
  • Gson轉換json數據為對象
    可以通過Gson使用兩種方法,將json字符串轉換為對象,以下面該段報文做測試{ "id
  • JSON詳解
    XML也是一種數據交換格式,為什麼沒有選擇XML呢?因為XML雖然可以作為跨平臺的數據交換格式,但是在JS(JavaScript的簡寫)中處理XML非常不方便,同時XML標記比數據多,增加了交換產生的流量,而JSON沒有附加的任何標記,在JS中可作為對象處理,所以我們更傾向於選擇JSON來交換數據。這篇文章主要從以下幾個方面來說明JSON。
  • 程式設計師都應該了解的一種數據格式之 JSON
    今天我們來學習一下JSON的結構形式、數據類型、使用場景以及注意事項吧!JSON格式上面我們知道JSON是從JavaScript的數據類型中提取出來的子集,那JSON有幾種結構形式呢?又有哪些數據類型呢?他們又分別對應著JavaScript中的哪些數據類型呢?
  • 【python】讀取json文件
    最近要打個比賽,在處理數據的時候,發現數據竟然是json文件的,於是上網查了下,展示給大家O.O作者Bigberghttps://www.cnblogs.com/bigberg/p/6430095這是用於序列化的兩個模塊:json: 用於字符串和python數據類型間進行轉換pickle: 用於python特有的類型和python的數據類型間進行轉換Json模塊提供了四個功能:dumps、dump、loads、loadpickle模塊提供了四個功能:dumps、dump、loads、load細節注意:
  • php解析json格式的文本
    昨天,在我校的高級培訓群裡,有同學諮詢了如何用php解析json格式的文本問題,老師發現這個問題比較典型,在此將相關的知識點總結分享給同學們,希望對其他同學掌握該知識點也能起到一些幫助。同學jsoly提問說,有這樣的一個數組$arr(如下圖所示)想轉換為php的數組,該如何處理。一眼望去就是個json格式的字符串,顯然php裡面不能這樣定義,這樣的定義會報語法錯誤,就像這樣: