首页 > 解决方案 > 如何以直观的方式格式化使用请求库下载的 CSV 数据?

问题描述

我有这段代码用来从网站中提取数据:

import csv
import requests

url = 'https://covid-19.dataflowkit.com/v1'
response = requests.get(url)        

with open('covid.csv', 'w') as f:
    writer = csv.writer(f)
    for line in response.iter_lines():
        writer.writerows(line.decode('utf-8').split(','))

我能够在 CSV 文件中获取数据,但格式错误且令人困惑。

如何在 CSV 文件中以有意义的方式格式化输出?

或者如何将此结果/数据插入 SQL Server 中的表中?

标签: pythonpython-3.xcsvpython-requests

解决方案


响应是一个 json。我会说响应本身是以适当的方式提出的。

import requests
import pandas as pd

url = 'https://covid-19.dataflowkit.com/v1'
response = requests.get(url)  
df = pd.DataFrame(response.json())
df.to_csv("data.csv", index=False)

csv 是什么样子的?

    Active Cases_text           Country_text       Last Update New Cases_text New Deaths_text Total Cases_text Total Deaths_text Total Recovered_text
0           4,871,695                  World  2020-07-12 20:16       +175,247          +3,530       13,008,752           570,564            7,566,493
1           1,757,520                    USA  2020-07-12 20:16        +52,144            +331        3,407,790           137,733            1,512,537
2             579,069                 Brazil  2020-07-12 19:16        +23,869            +608        1,864,681            72,100            1,213,512
3             301,850                  India  2020-07-12 19:16        +29,108            +500          879,466            23,187              554,429
4             214,766                 Russia  2020-07-12 20:16         +6,615            +130          727,162            11,335              501,061
..                ...                    ...               ...            ...             ...              ...               ...                  ...
212                 0  Caribbean Netherlands               NaN                                               7                                      7
213                 0              St. Barth               NaN                                               6                                      6
214                 0               Anguilla               NaN                                               3                                      3
215                 1  Saint Pierre Miquelon               NaN                                               2                                      1

如果您想从数据中提取含义,那么我建议您分析 pandas 数据框上的数据

如果要分析数据库中的数据,请使用此答案 - https://stackoverflow.com/a/25662997/6849682 for sql server


推荐阅读