# noinspection PyUnresolvedReferences
import json
import pandas as pd
import numpy as np
import requests
from lxml import html
import os
from bs4 import BeautifulSoup
import re
from operator import itemgetter
import csv
import demjson
#请求地址
url='https://ncov.dxy.cn/ncovh5/view/pneumonia'
#设置请求头
header={
"User-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"
}
#发送请求
response =requests.get(url=url, headers=header)
page=response.content.decode('utf-8')
#构建BeautifulSoup对象
soup = BeautifulSoup(page, 'lxml')
#根据id属性查找
script=soup.find(id="getAreaStat")
#活动标签中的文本内容
data = script.text
json_str = re.findall(r'\[.+\]', data)[0]
resut = json.loads(json_str)
# resultData = json.dumps(resut,ensure_ascii=False)
#print(type(resut))
#print(type(resut[1]))
#print(len(resut))
#print(resut[1]) resut是列表
city=list()
keys=['provinceName','cities']
for i in range (len(resut)):
if(i>2):
out = itemgetter(*keys)(resut[i])
city.append(resut[i].get('cities'))
#print(out)
#print(i,city)#现在每一个city都是一个字典,把字典转换成列表
#print(city)
a=[]
for headers in sorted(city[0][0].keys()):#把字典的键取出来
a.append(headers)
header=a#把列名给提取出来,用列表形式呈现
#print(header)
value={}
for m in range (len(city)):
for n in range(len(city[m])):
value.update(city[m][n].items())
#print(type(value))
mid = pd.DataFrame(data=value, index=[0])
#print(type(mid))
mid.to_csv('C:/Users/Administrator/Desktop/实训/city1.csv')
网上找了下说不能用循环,但是应该怎么弄?