首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python从API中获取JSON格式的数据到.db文件

如何使用python从API中获取JSON格式的数据到.db文件
EN

Stack Overflow用户
提问于 2022-04-17 02:39:33
回答 1查看 429关注 0票数 -2

我有一个API:https://baseballsavant.mlb.com/gf?game_pk=635886,我想使用python代码从这里获取数据(这是JSON格式的),并创建一个填充这些数据的表,以便我可以使用sqlite3在它上运行SQL查询。我在这里获得了JSON中的数据,但我想将它推到名为pitch.db的数据库中

以下是我到目前为止所拥有的:

代码语言:javascript
复制
    import pandas as pd
    import requests
    import sqlite3
    import json
    from sqlalchemy import create_engine
    engine = create_engine('sqlite://', echo=False)
    url = "https://baseballsavant.mlb.com/gf?game_pk=635886"
    conn = sqlite3.connect('pitch.db')
    c = conn.cursor()
    df = pd.read_json(url, orient='index')
    df.to_sql('baseball', engine, if_exists='replace')
EN

回答 1

Stack Overflow用户

发布于 2022-04-20 08:04:23

这是一个让投手进入分贝的例子。您必须将json扁平化,然后还必须将任何扩容的json结构扁平化,或者删除它们(因为我不知道您到底想要什么数据,所以我删除了它们)。但这会将表放入名为投球手的db文件中,并与表棒球一起使用。

代码语言:javascript
复制
import pandas as pd
import requests
import sqlite3

url = url = "https://baseballsavant.mlb.com/gf?game_pk=635886"
jsonData = requests.get(url).json()

pitchers = []
for home_away in ['home', 'away']:
    for x in jsonData[f'{home_away}_pitchers'].values():
        pitchers += x
    
pitchers_df = pd.DataFrame(pitchers)
cols = ['play_id','inning','ab_number','outs','stand','batter_name','p_throws',
        'pitcher_name','team_batting','team_fielding','result','strikes',
        'balls','pre_strikes','pre_balls','call_name','pitch_type','start_speed',
        'extension','zone','spin_rate','hit_speed','hit_distance','hit_angle',
        'is_barrel','is_bip_out','pitch_number','player_total_pitches',
        'game_pk']
pitchers_df = pitchers_df[cols]

conn = sqlite3.connect('pitch.db')
pitchers_df.to_sql('baseball', conn, if_exists='replace',  index=False)
conn.close()

输出:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71898891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档