瘟疫来袭,大家是不是正好在家编程练习

dmyk
东明雅客 01月30日 字数 0

Python Python的自由天空
23 个回复
xerox51
enhanced32 01月30日

不说了,直接上代码

import json

import requests

import datetime

url = 'https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_area_counts&callback'

res = requests.get(url).json()['data']

data = json.loads(res)

list_data = []

for item in data:

if item['country'] == '中国':

list_data.append(str(item['country']) + str(item['area'])+str(item['city']) + "确诊:" + str(item['confirm']) + "例,疑似:" + str(item['suspect'])+ "例,死亡:"+str(item['dead']) + "例,治愈:"+str(item['heal'])+"例;")

print (str(datetime.datetime.now()) + "\n")

for item in sorted(list_data):

print (item)

xerox51
enhanced32 01月30日

自己写的代码,粘贴过来的时候格式变了,见谅。

dmyk
东明雅客 01月30日

厉害

json这种东西需要学到哪种地步

这得很懂结构吧

【 在 xerox51 (enhanced32) 的大作中提到: 】

: 不说了,直接上代码

: import json

: import requests

: ...................

xiajusi
xiajusi 01月30日

不用,会用dict就可以。

【 在 dmyk 的大作中提到: 】

: 厉害

: json这种东西需要学到哪种地步

: 这得很懂结构吧

: ...................

xerox51
enhanced32 01月31日

今天腾讯更新了url以及数据的数据结构,上代码

import json

import requests

url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback'

res = requests.get(url).json()['data']

data = json.loads(res)

def showupdatetime(data):

print(str(data['lastUpdateTime']))

def showeverycity(data):

list0 = data['areaTree']

list1 = list0[0]

list2 = list1['children']

for province in list2:

templist = province['children']

print(province['name'] + "省详情:")

for item in templist:

print(str(item['name']) + "累计确诊:" + str(item['total']['confirm']) + "例,疑似:" + str(item['total']['suspect'])+ "例,死亡:"+str(item['total']['dead']) + "例,治愈:"+str(item['total']['heal'])+"例;")

showupdatetime(data)

showeverycity(data)

callmebbser
BBSer 01月31日

下载到的这个JSON串,里面的双引号都加了斜杠转义,有必要吗?数了下有11048个斜杠。

还有,js的字典的key必须用双引号包起来吗?

若斜杠和双引号都没有必要,这个JSON串长度大概可以缩小30K字节。

【 在 xerox51 (enhanced32) 的大作中提到: 】

: 今天腾讯更新了url以及数据的数据结构,上代码

: import json

: import requests

: ...................

hgoldfish
老鱼 01月31日

这个 json 太蠢了。把 json 转成字符串存在另外一个 json 里面。

所以 xerox51 的代码里面反序列化了两次。

【 在 callmebbser (BBSer) 的大作中提到: 】

: 下载到的这个JSON串,里面的双引号都加了斜杠转义,有必要吗?数了下有11048个斜杠。

: 还有,js的字典的key必须用双引号包起来吗?

: 若斜杠和双引号都没有必要,这个JSON串长度大概可以缩小30K字节。

: ...................

callmebbser
BBSer 01月31日

是啊,写这个代码的基本功不行。

【 在 hgoldfish (老鱼) 的大作中提到: 】

: 这个 json 太蠢了。把 json 转成字符串存在另外一个 json 里面。

: 所以 xerox51 的代码里面反序列化了两次。

dmyk
东明雅客 01月31日

【 在 xerox51 (enhanced32) 的大作中提到: 】

: 今天腾讯更新了url以及数据的数据结构,上代码

: import json

: import requests

: ...................

dmyk
东明雅客 01月31日

你怎么知道哦啊哦url啊

【 在 xerox51 (enhanced32) 的大作中提到: 】

: 今天腾讯更新了url以及数据的数据结构,上代码

: import json

: import requests

: ...................

sanbeichahe
sanbeichahe 01月31日

可以做成可视化吧

【 在 xerox51 的大作中提到: 】

: 今天腾讯更新了url以及数据的数据结构,上代码

: import json

: import requests

: ...................

dmyk
东明雅客 01月31日

来,继续

【 在 sanbeichahe (sanbeichahe) 的大作中提到: 】

: 可以做成可视化吧

xerox51
enhanced32 02月01日

你用chrome浏览器打开腾讯的全国疫情图,打开开发者工具,在network里找

【 在 dmyk 的大作中提到: 】

: 你怎么知道哦啊哦url啊

xerox51
enhanced32 02月01日

我不是程序员,大学毕业9年了,本科那时候只学过C。

可视化就让你们这些专业人士来搞了。

【 在 sanbeichahe 的大作中提到: 】

: 可以做成可视化吧

xerox51
enhanced32 02月01日

有个技巧,转成Python的字典结构后,你用pprint打印,可以看到清晰的结构,再来写代码。

【 在 callmebbser 的大作中提到: 】

: 下载到的这个JSON串,里面的双引号都加了斜杠转义,有必要吗?数了下有11048个斜杠。

: 还有,js的字典的key必须用双引号包起来吗?

: 若斜杠和双引号都没有必要,这个JSON串长度大概可以缩小30K字节。

: ...................

dmyk
东明雅客 02月01日

【 在 xerox51 (enhanced32) 的大作中提到: 】

: 你用chrome浏览器打开腾讯的全国疫情图,打开开发者工具,在network里找

xeagle
静下心来编程 02月01日

挺好,既学习又防病毒了。

某研究所研究初步发现,学习Python可抑制新型冠状病毒。

发自「今日水木 on iPhone 6s Plus」

【 在 dmyk 的大作中提到: 】

: --

crella126
crella126 02月01日

用ruby+erb搞了一个超简陋的网页版,主代码:https://paste.ubuntu.com/p/R9PGsrc5cB/ 网页代码: https://paste.ubuntu.com/p/HjmcMqywW2/

需要gem install json open-uri sinatra,

用贴里那个数据链接是不对的,跟网页的数据对不上,应该用 https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5

隔壁v2ex已经很多大佬做了轮子了,我这个完全比不上他们的作品……当然自己也没怎么认真学过。

dmyk
东明雅客 02月01日

隔壁是哪儿

【 在 crella126 (crella126) 的大作中提到: 】

: 用ruby+erb搞了一个超简陋的网页版,主代码:https://paste.ubuntu.com/p/R9PGsrc5cB/ 网页代码: https://paste.ubuntu.com/p/HjmcMqywW2/

: 需要gem install json open-uri sinatra,

: 用贴里那个数据链接是不对的,跟网页的数据对不上,应该用 https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5

: ...................