CSV或JSON格式

时间:2017-10-09 17:05:41

标签: python json excel csv openpyxl

 import base64
import requests

USERNAME, PASSWORD = 'notworking', 'notworking'

def send_request():
    # Request

    try:
        response = requests.get(
            url="https://api.mysportsfeeds.com/v1.1/pull/nhl/2017-2018-regular/cumulative_player_stats.{format}", 
            params={
                "fordate": "20171009"
            },
            headers={
                "Authorization": "Basic " +
                     base64.b64encode('{}:{}'.format(USERNAME,PASSWORD)\
                                      .encode('utf-8')).decode('ascii')
            }
        )
        print('Response HTTP Status Code: {status_code}'.format(
            status_code=response.status_code))
        print('Response HTTP Response Body: {content}'.format(
            content=response.content))
    except requests.exceptions.RequestException:
        print('HTTP Request failed')

该代码允许我从mysportsfeeds.com提取数据。最后,我需要获取send_request函数的输出,并将其格式化为.xlsx文件中的openpyxl库。我不知道哪种格式最容易处理,即csvjson格式的输出。

优秀的website会告诉您如何获得cumulate_player_stats的输出。

例如,

https://api.mysportsfeeds.com/v1.1/pull/nhl/2016-2017-regular/cumulative_player_stats.{format}

其中{format}csvjson

问题:

什么是更好的选择:以csv格式ou json格式输出,以便它可以与openpyxl lib一起使用?是否有人能够向我展示如何使用csv(使用csv库)和json(使用json库)使用openpyxl?< / p>

1 个答案:

答案 0 :(得分:0)

Excel是基于行的文件格式。这将建议CSV,它是基于行的。但是CSV文件是纯文本的,这意味着它们不包含类型信息,您必须猜测“9/10/17”是指10月9日(20)17,9月10日(20)17,简称“9” / 10 / 17" 。

JSON至少是类型,但需要一次性读入内存。假设它只是一个列表列表,那么它可能是最好的选择,因为Excel工作表不能超过一百万行。