У меня есть этот метод:
def getHistoricRates():
""" Here we have the function that will retrieve the historical rates from fixer.io, since 1999 """
rates = []
response = urlopen('my_api_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'))
db = sqlite3.connect("usio.sql")
c = db.cursor()
#curs.execute('''CREATE TABLE rates(
# currency TEXT NOT NULL,
# rate REAL NOT NULL,
# )''')
except KeyError:
logging.warning('rate for {} not found in rdata'.format(rate_symbol))
pass
return rates
Это сохраняет результат в json
файле with open('usio.json', 'w') as outfile
, мне нужно взять этот json
результат в базу данных SQLite, у меня есть файл sql, db = sqlite3.connect("usio.sql")
, но потом, я запутался, я ' Я видел много учебников, но я до сих пор не понимаю, что мне нужно.
1.- Существует ли четкий способ создания таблицы со строками и столбцами на лету для SQLite для этой цели?
2.- Как я могу продолжить свою логику, после того как я соединюсь с моим файлом sql, чтобы я мог сохранить результат json.dump
там?
Это более или менее моя структура таблицы, довольно просто:
curs.execute('''CREATE TABLE rates(
currency TEXT NOT NULL,
rate REAL NOT NULL,
)''')
Который сейчас комментируется в моем коде.
Ответ json выглядит следующим образом:
success true
timestamp 1535180947
base "EUR"
date "2018-08-25"
rates
AED 4.272855
AFN 84.510584
ALL 125.782694
AMD 559.27321
... more currencies with their rates
Есть идеи?