El rastreador de Python analiza json anidados de varios niveles

La dirección personal del blog https://nfreak-man.cn
acaba de ponerse en contacto con el rastreador de Python recientemente. Es recientemente que la neumonía se ha extendido por todo el país, por lo que planeo rastrear los datos de neumonía en tiempo real del sitio web y analizar los datos que quiero. La URL para obtener datos json es https://m.look.360.cn/events/feiyan

URL de rastreo:

def main():
    url='https://m.look.360.cn/events/feiyan'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) 		    AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 QIHU 360EE'}
    parse_page(url)

Analiza y guarda el archivo de formato json:

state = json.loads(response.content)
with open("feiyan.json", "w",encoding='utf-8') as f:
	f.write(json.dumps(state,indent=2,ensure_ascii=False))
    print("保存成功")

Después de obtener el archivo json, se encuentra en un formato anidado. Para el formato específico, puede abrir la URL de arriba para ver:

{
 "data":[
 		{
 		 "data":{省份}
         "citys":[
         		  {城市}{}.....
         		 ]		 
 		}
 		{
 		 "data":{省份}
         "citys":[
         		  {城市}{}.....
         		 ]		 
 		}
 "country":[
 			{其他国家}
 		   ]	
 		]
}

código fuente json

Analizando los datos

Debido a que solo quiero obtener los nombres de las ciudades, la cantidad de infecciones, la cantidad de curas y la cantidad de muertes, necesito un ciclo anidado para obtenerlas y generarlas una por una. El código es el siguiente:

Adquisición de datos provinciales:

provincename = state['data'][i]['data']['provinceName'] 
confirmedCount = state['data'][i]['data']['confirmedCount']
curedCount = state['data'][i]['data']['curedCount'] 
deadCount = state['data'][i]['data']['deadCount'] 

Adquisición de datos de la ciudad:

cityName = state['data'][i]['cities'][j]['cityName']
diagnosed = state['data'][i]['cities'][j]['diagnosed']
cured = state['data'][i]['cities'][j]['cured']
died = state['data'][i]['cities'][j]['died']

Adquisición de datos en ciudades extranjeras:

countryname = state['country'][c]['provinceName']
diagnosed = state['country'][c]['diagnosed']
cured = state['country'][c]['cured']
died = state['country'][c]['died']

Lo anterior es el formato de análisis json anidado.

Efecto de salida:
Efecto de salida

Dirección de origen: github

Publicado 28 artículos originales · elogiado 0 · visitas 722

Supongo que te gusta

Origin blog.csdn.net/William_GJIN/article/details/104627664
Recomendado
Clasificación