Проверьте результат вставки базы данных командой pandas to_sql - Flask - PullRequest
0 голосов
/ 27 августа 2018

У меня есть эта функция:

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
);

Этот код читает файл json с именем usio.json, затем, используя to_sql Функция pandas, она хранит ее в базе данных SQLite с именем usio.sql, однако, она, кажется, работает довольно хорошо, но мое сомнение или проблема в том, где я могу проверить результат?

Я имею в виду, я нея не вижу ни одного созданного файла, возможно, потому, что я не инициализировал базу данных SQLite в своем приложении Flask?

Или, может быть, я забыл указать что-то еще?

1 Ответ

0 голосов
/ 27 августа 2018

У вас должен быть отдельный метод, который выполняет проверку базы данных.

    def printNewTable():
        db = dqsqlite3.connect('usio.db')
        for row in db.execute('select * from rates'):
            print row
    printNewTable()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...