PYTHON3處理JSON的函數

PYTHON3處理JSON的函數學習python的朋友必須要挑撥的一門技巧的,我們下面給各位整理了一些處理json函數供各位參考學習。

在python3中import json模塊,然後使用dir(json)可以看到json模塊提供的函數,下面選幾個常用的json處理函數看看用法:

>>> import json
>>> dir(json)
['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__',
'__author__', '__builtins__', '__cached__', '__doc__', '__file__',
'__loader__', '__name__', '__package__', '__path__', '__spec__',
'__version__', '_default_decoder', '_default_encoder', 'decoder',
'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']

json.dumps

先定義一個列表,然後轉換看看輸出結果:

import json

data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True]
data2 = json.dumps(data)

print(data2)
輸出結果:

[{“c”: [1, 2, 3, [4, 5, 6]], “a”: “aaa”, “b”: “bbb”}, 33, “tantengvip”, true]

其實python的列表數據結構跟json數據結果很類似,轉換之後大體不變,只是True變成了true,元祖類型的(4,5,6)變成了[4,5,6].

JSONPYTHON
objectdict
arraylist
stringunicode
number (int)int, long
number (real)float
trueTrue
falseFalse
nullNone
該表展現了python和json類型的轉換區別。

json.dump

這個方法用的相對較少,假如直接dump(json_data)會報錯,如下:

data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True]
data2 = json.dump(data)

#TypeError: dump() missing 1 required positional argument: 'fp'
報錯:TypeError: dump() missing 1 required positional argument: ‘fp’

json.dump和json.dumps很不同,json.dump主要用來json文件讀寫,和json.load函數配合使用。json.dump(x,f),x是對象,f是一個文件對象,這個方法可以將json字符串寫入到文本文件中。


import json

data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True]
data2 = json.dumps(data)

print(data2)

f = open('./tt.txt','a')
json.dump(data2,f)

這樣就生成了一個tt.txt文件,保存了json格式的數據。dumps還提供pritty print,格式化的輸出。

json.load載入json格式文件

f = open('./tt.txt','r')
hehe = json.load(f)

print(hehe)
這樣就從txt文件中讀取了json數據。

json.lodas函數

那麽json.loads函數跟json.load有何區別?跟dumps和dump一樣,帶s是操作文件的。


hehe2 = json.loads('["aaa",{"name":"pony"}]')
print(hehe2)

loads可以直接傳json格式數據作爲參數。

看一個讀取天氣的例子

import os, io, sys, re, time, base64, json
import webbrowser, urllib.request
def main():
"main function"
url = "http://m.weather.com.cn/data/101010100.html"
stdout=urllib.request.urlopen(url)
weatherInfo= stdout.read().decode('utf-8')
#print(weatherInfo)
jsonData = json.loads(weatherInfo)


#輸出JSON數據
szCity = jsonData["weatherinfo"]["city"]
print("城市: ", szCity)
szTemp = jsonData["weatherinfo"]["temp1"]
print("溫度: ", szTemp)
szWeather1 = jsonData["weatherinfo"]["weather1"]
print("天氣情況: ",szWeather1)
szCityid = jsonData["weatherinfo"]["cityid"]
print("城市編碼: ",szCityid)

if __name__ == '__main__':
main()

更多相關文章
  • json數據是一種經型的及時數據交互的數據存儲方法,使用到最多的應該是ajax與json配合使用了,下面我來給大家介紹jquery處理json數據方法.一.JSON的一些基礎知識.JSON中對象通過“{}”來標識,一
  • 代碼如下 //xml string $xml_string="<?xml version='1.0'?> <users> <user id='398'> <name>Foo</name> <email>foo@bar
  • 處理xml或者json格式返回數據之easynet.solr在easynet.solr中,有兩個接口最重要,一個是編解碼器接口icodec,一個是solr輸出結果解析器接口isolrresponseparser<st
  • 在Python內置函數map.reduce.filter在文本處理中的應用是一門比較簡單的知識點了,下面我們一起來看看這三個函數的用法.文件是由很多行組成的,這些行組成一個列表,python提供了處理列表很有用的三個函數:map.reduce.filter.因此在文本處理中,可以使用這三個函數達到代 ...
  • php中array_map函數是返回一個數組了,然後對我們的傳值一個個傳組我們要處理的函數處理,下面來給大家介array_map函數使用例子.array array_map ( callable $callback
  • 今天在利用curl_multi函數來獲取一些外網內容時發現只要一運行curl_multi函數我的cpu就占得非常的高,後來看一站長分享了此問題解決方法我也整理一下與各位分享一下,希望對大家有幫助.簡單的cURL處理如
  • 本文章詳細的介紹了關于set_error_handler函數在使用中的一些注意事項及set_error_handler函數出現問題的解決辦法.定義和用法set_error_handler() 函數設置用戶自定義的錯誤處理函數.該函數用于創建運行時期間的用戶自己的錯誤處理方法.該函數會返回舊的錯誤處理
  • 本文章介紹了在php中常用的簡單的異常處理類,我們主要是講述到了Exception處理 ,有需要了解的同學可參考一下. 代碼如下 <?php try { $a=10/0; }catch (Exception $e){
一周排行