通过pandas to_sql命令检查数据库插入结果-Flask

时间:2018-08-27 03:21:42

标签: python pandas sqlite

我有这个功能:

def getHistoricRates():
    """ Here we have the function that will retrieve the historical rates from fixer.io, since 1999 """
    rates = []
    response = urlopen('my_key')
    data = response.read()
    rdata = json.loads(data.decode(), parse_float=float) 
    rates_from_rdata = rdata.get('rates', {})
    for rate_symbol in ['USD', 'GBP', 'HKD', 'AUD', 'JPY', 'SEK', 'NOK']:
        try:
            rates.append(rates_from_rdata[rate_symbol])
            with open('usio.json', 'w') as outfile:
                json.dump(rdata, outfile)
            history_currency = json.load(open('usio.json'))
            df = pd.read_json(open('usio.json'))
            df
            conn = sqlite3.connect('usio.db')
            df.to_sql('usio', conn, if_exists='replace')
        except KeyError:
            logging.warning('rate for {} not found in rdata'.format(rate_symbol)) 
            pass

    return rates

这是我的架构文件:

drop table if exists rates;
create table rates (
  id integer primary key autoincrement,
  currency text,
  rate real
);

此代码读取一个名为usio.json的json文件,然后通过使用to_sql pandas函数将其存储到一个名为usio.sql的SQLite数据库中,但是看起来很不错很好,但是我的疑问或问题是,在哪里可以查看结果?

我的意思是我看不到任何文件创建,可能是因为我还没有将SQLite数据库初始化到Flask应用程序中?

还是我忘了指定其他内容?

1 个答案:

答案 0 :(得分:1)

您需要有一个单独的方法来为您检查数据库。

    def printNewTable():
        db = dqsqlite3.connect('usio.db')
        for row in db.execute('select * from rates'):
            print row
    printNewTable()