日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

五、json模块

發布時間:2023/12/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五、json模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、json模塊的介紹

json模塊是Python自帶的模塊,用于json和Python數據之間的相互轉換

Json與Python數據類型的對應關系

JsonPython
objectdict
arraylist
stringstr
number(int)int,long
number(real)float
trueTrue
falseFalse
nullNone
[#中括號括起來的,對應與Json中的array數組,在python中為list列表{#大括號括起來的,對應于Json中的object對象,在python中為dict字典"beyond":"yanyu"#beyond在Json中為對象的屬性,在python為字典的鍵;yanyu在Json中為屬性的值,在python為字典的值},{"age":22#當然字符串string--str;number(int)--int、long} ]

二、JSON轉換為Python


1,把JSON字符串轉為Python數據

import jsonjson_str = '''[{"name":"huangjiaju","age":"43","band":"beyond"}]'''#準備JSON字符串rs = json.loads(json_str)#轉換為Python數據 print(rs)#結果為:[{'name': 'huangjiaju', 'age': '43', 'band': 'beyond'}]print(type(rs))#結果為:<class 'list'> print(type(rs[0]))#結果為:<class 'dict'>

2,把JSON格式的文件轉為Python類型的數據

json.json

[{"name":"huangjiaju","age":"43","band":"beyond"} ] import jsonwith open("E:\Jupyter_workspace\study\python\爬蟲\json.json") as fp:python_list = json.load(fp)print(python_list)#結果為:[{'name': 'huangjiaju', 'age': '43', 'band': 'beyond'}]print(type(python_list))#結果為:<class 'list'>print(type(python_list[0]))#結果為:<class 'dict'>

三、Python轉換為JSON

1,把Python類型數據轉為JSON字符串

import jsonpython_str = '''[{"name":"huangjiaju","age":"43","band":"beyond"}]'''#準備Python數據 rs = json.loads(python_str) json_str = json.dumps(rs,ensure_ascii=False)#轉換為JSON字符串 第二個參數表示是否使用ASCII碼,默認為True,若有漢字則需要設置為False print(json_str)#結果為:[{"name": "huangjiaju", "age": "43", "band": "beyond"}]

2,把Python類型數據以JSON格式存儲到文件中

import jsonpython_str = '''[{"name":"huangjiaju","age":"43","band":"beyond"}]'''#準備Python字符串 rs = json.loads(python_str)with open("E:\Jupyter_workspace\study\python\爬蟲\json1.json",'w') as fp:json.dump(rs,fp,ensure_ascii=False)#轉換為JSON字符串 第二個參數表示是否使用ASCII碼,默認為True,若有漢字則需要設置為False

最終效果為生成json1.json,成功的把Python類型數據以JSON格式存儲到文件中。

json1.json內容如下:

四、解析最新的疫情數據的json字符串

步驟:

  • 發送請求,獲取疫情首頁
  • 從疫情首頁中提取各國疫情字符串
  • 從各國疫情字符串中,提取json格式字符串
  • 把json格式字符串轉換為Python數據類型
  • 當然,數據來源仍然是丁香園新型冠狀病毒肺炎疫情實時動態首頁
    url:https://ncov.dxy.cn/ncovh5/view/pneumonia

    # 1,導入相關模塊 import requests import re import json from bs4 import BeautifulSoup# 2,發送請求,獲取疫情首頁內容 response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia') home_page = response.content.decode() #print(home_page) # 3,使用Beautiful Soup提取疫情數據 soup = BeautifulSoup(home_page,'lxml') script = soup.find(id='getAreaStat') text = script.text #print(text)# 4,使用正則表達式提取json字符串 json_str = re.findall(r'\[.+\]',text)[0]#由于中括號是個特殊的字符,需要在前面加個轉義符;最后的結果會存在列表中,故使用[0]來獲取完整json格式 #print(json_str)# 5,把json字符串轉換為Python類型的數據 last_day_HongKong_num = json.loads(json_str) print(last_day_HongKong_num) ''' [{'provinceName': '香港', 'provinceShortName': '香港', 'currentConfirmedCount': 5990, 'confirmedCount': 22468, 'suspectedCount': 181, 'curedCount': 16190, 'deadCount': 288, 'comment': '疑似 1 例', 'locationId': 810000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/331/3398299755968040033-135.json', 'highDangerCount': 0, 'midDangerCount': 0, 'detectOrgCount': 0, 'vaccinationOrgCount': 0, 'cities': [], 'dangerAreas': []}, {'provinceName': '臺灣', 'provinceShortName': '臺灣', 'currentConfirmedCount': 5462, 'confirmedCount': 20056, 'suspectedCount': 485, 'curedCount': 13742, 'deadCount': 852, 'comment': '', 'locationId': 710000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/045/3398299749526003760-135.json', 'highDangerCount': 0, 'midDangerCount': 0, 'detectOrgCount': 0, 'vaccinationOrgCount': 0, 'cities': [], 'dangerAreas': []}, {'provinceName': '浙江省', 'provinceShortName': '浙江', 'currentConfirmedCount': 388, 'confirmedCount': 2255, 'suspectedCount': 68, 'curedCount': 1866, 'deadCount': 1, 'comment': '2月10日通報核減的12例在浙江省治愈的外省病例,根據國家最新要求重新納入累計病例。', 'locationId': 330000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/537/3398299755968455045-135.json', 'highDangerCount': 0, 'midDangerCount': 0, 'detectOrgCount': 519, 'vaccinationOrgCount': 217, 'cities': [{'cityName': '杭州', 'currentConfirmedCount': 143, 'confirmedCount': 328, 'suspectedCount': 0, 'curedCount': 185, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330100, 'currentConfirmedCountStr': '143'}, {'cityName': '境外輸入', 'currentConfirmedCount': 119, 'confirmedCount': 387, 'suspectedCount': 68, 'curedCount': 268, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 0, 'currentConfirmedCountStr': '119'}, {'cityName': '寧波', 'currentConfirmedCount': 110, 'confirmedCount': 269, 'suspectedCount': 0, 'curedCount': 159, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330200, 'currentConfirmedCountStr': '110'}, {'cityName': '紹興', 'currentConfirmedCount': 38, 'confirmedCount': 430, 'suspectedCount': 0, 'curedCount': 392, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330600, 'currentConfirmedCountStr': '38'}, {'cityName': '金華', 'currentConfirmedCount': 2, 'confirmedCount': 57, 'suspectedCount': 0, 'curedCount': 55, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330700, 'currentConfirmedCountStr': '2'}, {'cityName': '溫州', 'currentConfirmedCount': 0, 'confirmedCount': 504, 'suspectedCount': 0, 'curedCount': 503, 'deadCount': 1, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330300, 'currentConfirmedCountStr': '0'}, {'cityName': '臺州', 'currentConfirmedCount': 0, 'confirmedCount': 147, 'suspectedCount': 0, 'curedCount': 147, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 331000, 'currentConfirmedCountStr': '0'}, {'cityName': '嘉興', 'currentConfirmedCount': 0, 'confirmedCount': 46, 'suspectedCount': 0, 'curedCount': 46, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330400, 'currentConfirmedCountStr': '0'}, {'cityName': '省十里豐監獄', 'currentConfirmedCount': 0, 'confirmedCount': 36, 'suspectedCount': 0, 'curedCount': 36, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 0, 'currentConfirmedCountStr': '0'}, {'cityName': '麗水', 'currentConfirmedCount': 0, 'confirmedCount': 17, 'suspectedCount': 0, 'curedCount': 17, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 331100, 'currentConfirmedCountStr': '0'}, {'cityName': '衢州', 'currentConfirmedCount': 0, 'confirmedCount': 14, 'suspectedCount': 0, 'curedCount': 14, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330800, 'currentConfirmedCountStr': '0'}, {'cityName': '湖州', 'currentConfirmedCount': 0, 'confirmedCount': 10, 'suspectedCount': 0, 'curedCount': 10, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330500, 'currentConfirmedCountStr': '0'}, {'cityName': '舟山', 'currentConfirmedCount': 0, 'confirmedCount': 10, 'suspectedCount': 0, 'curedCount': 10, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330900, 'currentConfirmedCountStr': '0'}, {'cityName': '待明確地區', 'currentConfirmedCount': -24, 'confirmedCount': 0, 'suspectedCount': 0, 'curedCount': 24, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 0, 'notShowCurrentConfirmedCount': True, 'currentConfirmedCountStr': '-'}], 'dangerAreas': []}, {'provinceName': '廣東省', 'provinceShortName': '廣東', 'currentConfirmedCount': 362, 'confirmedCount': 4163, 'suspectedCount': 25, 'curedCount': 3793, 'deadCount': 8, 'comment': '廣東衛健委未明確部分治愈病例的地市歸屬,因此各地市的現存確診存在一定偏差。', 'locationId': 440000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/281/3398299758115524068-135.json', 'highDangerCount': 0, 'midDangerCount': 3, 'detectOrgCount': 120, 'vaccinationOrgCount': 42, 'cities': [{'cityName': '深圳', 'currentConfirmedCount': 145, 'confirmedCount': 798, 'suspectedCount': 3, 'curedCount': 650, 'deadCount': 3, 'highDangerCount': 0, 'midDangerCount': 3, 'locationId': 440300, 'currentConfirmedCountStr': '145'}, {'cityName': '廣州', 'currentConfirmedCount': 98, 'confirmedCount': 2205, 'suspectedCount': 3, 'curedCount': 2106, 'deadCount': 1, 'highDangerCount': 0, 'midDangerCount': 0,內容過多此處省略 '''

    總結

    以上是生活随笔為你收集整理的五、json模块的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。