繁体   English   中英

Python数据输出到Excel

[英]Python data output to Excel

在花费数小时试图找出将统计信息导入 Excel 文件的方法时,我遇到了这个脚本的一个版本,我试图在 Python 中使用它。 执行时,我在脚本的第二个csv_output部分下方收到以下错误:

KeyError: 0

我刚刚开始学习 Python 的细微差别,无法真正弄清楚我在这里做错了什么。

我目前正在使用 Python 3.6 和 Windows 10。任何帮助将不胜感激。

import requests
import csv

url = "http://stats.nba.com/stats/leagueLeaders?
LeagueID=00&PerMode=PerGame&Scope=S&Season=2017-
18&SeasonType=Regular+Season&StatCategory=PTS"

data = requests.get(url, timeout=5)
entries = data.json()

with open('output.csv', 'w') as f_output:
    csv_output = csv.writer(f_output)
    csv_output.writerow(entries['resultSet'][0]['headers'])
    csv_output.writerows(entries['resultSet'][0]['rowSet'])
  1. 我没有看到名为 requests 的模块。 也许试试 urllib.request.urlopen(url, timeout=5)

  2. 网址不正确。 如果您只是使用浏览器打开,则会导致错误。 也许再次检查您的网址。

entry['resultset'] 是一个 dict 对象,它没有 '0' 键。 它只有“标题”、“行集”、“名称”。

只需从下面的两行代码中删除“[0]”,这将起作用。

    csv_output.writerow(entries['resultSet']['headers'])
    csv_output.writerows(entries['resultSet']['rowSet'])

这个解决方案对我有用:

  import pandas as pd
    data = requests.get(url, timeout=5)
    entries = data.json()
    Header=entries['resultSet']['headers']
    data =entries['resultSet']['rowSet']
    filename='c:\\test\\NBA.xlsx'           

    df = pd.DataFrame.from_records(data)    
    df.columns=Header
    writer = pd.ExcelWriter(filename, engine='xlsxwriter')
    df.to_excel(writer, sheet_name='sheet1', index=False,startrow=0 , startcol=0)
    writer.save()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM