简体   繁体   中英

Traceback when using Pandas to convert to Json Format

I recently have been trying to use the NBA API to pull shot chart data. I'll link the documentation for the specific function I'm using here .

I keep getting a traceback as follows:

Traceback (most recent call last):
  File "nbastatsrecieve2.py", line 27, in <module>
    df.to_excel(filename, index=False)
  File "C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\pandas\core\generic.py", line 2023, in to_excel
    formatter.write(
  File "C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\pandas\io\formats\excel.py", line 730, in write
    writer = ExcelWriter(stringify_path(writer), engine=engine)
  File "C:\Users\*\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\pandas\io\excel\_base.py", line 637, in __new__
    raise ValueError(f"No engine for filetype: '{ext}'") from err
ValueError: No engine for filetype: ''

This is all of the code as I currently have it:

from nba_api.stats.endpoints import shotchartdetail
import pandas as pd
import json

print('Player ID?')
playerid = input()
print('File Name?')
filename = input()

response = shotchartdetail.ShotChartDetail(
    team_id= 0,
    player_id= playerid
)

content = json.loads(response.get_json())

# transform contents into dataframe
results = content['resultSets'][0]
headers = results['headers']
rows = results['rowSet']
df = pd.DataFrame(rows)
df.columns = headers

# write to excel file
df.to_excel(filename, index=False)

Hoping someone can help because I'm very new to the JSON format.

You are getting this because the filename has no extension. Pandas will use the extension (like xlsx or xls ) of the filename (if you're not giving it an ExcelWriter ) to understand the right lib to use for this format. Just try this with something like df.to_excel('filename.xlsx', index=False) and see how goes.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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