诗岑 2022-07-11 17:41 采纳率: 93%
浏览 18
已结题

to_csv()的结果处理

代码:

# 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都是一个字典,把字典转换成列表

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())
        mid = pd.DataFrame(data=value, index=[0])
        mid.to_csv('C:/Users/Administrator/Desktop/实训/result.csv',mode='a',encoding='utf-8')

出来的表格是这样的:

img


现在想所有的cityName所在行移到最上方表头

  • 写回答

1条回答 默认 最新

  • 关注

    给你一个思路,open一个文件
    第一行就是你所有列
    然后换行写入你爬取的内容

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月19日
  • 已采纳回答 7月11日
  • 创建了问题 7月11日

悬赏问题

  • ¥15 CSS实现渐隐虚线框
  • ¥15 有没有帮写代码做实验仿真的
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真