【问题标题】:CSV or JSON formatCSV 或 JSON 格式
【发布时间】:2017-10-09 17:05:40
【问题描述】:
 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 函数的输出并将其格式化为带有 openpyxl 库的 .xlsx 文件。我不知道哪种格式最容易处理,即csvjson 格式的输出。

优秀的website 会告诉你如何得到cumulate_player_stats 的输出。

例如,

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

其中{format}csvjson

问题:

什么是更好的选择:csv 格式的输出或json 格式的输出,以便与openpyxl lib 一起工作?谁能告诉我它如何与csv(使用csv 库)和json(使用json 库)一起使用openpyxl

【问题讨论】:

  • 使用什么格式取决于个人喜好。您应该将其分解为多个阶段,因此不要考虑 csv 或 json 是否会更好地与 openpyxl 一起工作,而是向后工作......找出输出 openpyxl 所需的格式(例如列表或字典等) ,然后您可以使用 json 或 csv 并将其转换为该格式。我个人觉得 csv 更容易,但这取决于数据。
  • 以 CSV 格式请求数据将允许您将数据无缝转储为 Excel 格式。
  • JSON 是没有外部格式参数的标准。 CSV 是“标准的伟大之处在于有这么多可供选择”的示例。另外,它需要作者和读者沟通,字符编码、行分隔符、字段分隔符、文本限定符、文本限定符转义机制、是否有标题行、每列的类型是什么。有些程序很适合猜测这些事情,但通常需要人工现场指导。

标签: python json excel csv openpyxl


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2019-01-15
    • 2019-06-02
    • 2014-12-03
    • 2012-07-05
    • 2015-03-26
    • 2016-05-16
    • 2013-11-07
    相关资源
    最近更新 更多