@denisland

Как добавить некоторые значения json в sqlite?

Здравствуйте!
Я в самом начале пути изучения парсинга и работой с бд.
Подскажите пожалуйста, насколько я правильно понимаю алгоритм действий
Я спросил сайт, получил json.
Я хочу внести в таблицу базы данных только некоторые параметры из json.
Мне надо прочитать файл с помощью функции jsob.loads(), а затем определить в какое поле какой параметр записывать. Я верно понимаю суть ?
  • Вопрос задан
  • 384 просмотра
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
Ну в первую очередь, суть можешь знать только ты.
json и база данных sql это просто форматы и представления как можно хранить какие-то данные.
Какие именно там лежат данные и в каком формате - знаешь только ты. Нужны ли они тебе - знаешь только ты.
Следовательно только ты и можешь определить какое поле тебе надо вычитать и как его сохранить для дальнейшего использования.

Я спросил сайт, получил json.
skip
Мне надо прочитать файл с помощью функции jsob.loads(),


Так ты же уже получил json, зачем тебе читать какой-то файл? бери поле из json, это же структура, а не единичное значение
Ответ написан
Комментировать
alfss
@alfss
https://career.habr.com/alfss
import json
import urllib.request
import sqlite3
from os import path

stocks = ['AAPL', "MSFT"]

connection = sqlite3.connect("mydb.db")
cursor = connection.cursor()

for stock in stocks:

    url = "https://financialmodelingprep.com/api/v3/historical-price-full/" + stock
    data = urllib.request.urlopen(url).read().decode()

    obj = json.loads(data)

    for child in obj['historical']:
        print(child)

        cursor.execute("Insert into StockPrices values (?, ?, ?, ?, ?, ?, ?)", 
                       (child['date'], child['close'], child['high'], child['low'], 
                       child['open'], child['volume'], stock))
        connection.commit()


CREATE TABLE "StockPrices" (
    "date"  TEXT,
    "close" INTEGER,
    "high"  INTEGER,
    "low"   INTEGER,
    "open"  INTEGER,
    "volume"    INTEGER,
    "symbol"    TEXT
);


JSON который возвращает API
{
  "symbol" : "AAPL",
  "historical" : [ {
    "date" : "2015-04-22",
    "open" : 126.99,
    "high" : 128.87,
    "low" : 126.32,
    "close" : 128.62,
    "adjClose" : 119.0,
    "volume" : 3.76545E7,
    "unadjustedVolume" : 3.76545E7,
    "change" : 1.63,
    "changePercent" : 1.284,
    "vwap" : 127.93667,
    "label" : "April 22, 15",
    "changeOverTime" : 0.01284
  }, {
    "date" : "2015-04-23",
    "open" : 128.3,
    "high" : 130.42,
    "low" : 128.14,
    "close" : 129.67,
    "adjClose" : 119.97,
    "volume" : 4.57709E7,
    "unadjustedVolume" : 4.57709E7,
    "change" : 1.37,
    "changePercent" : 1.068,
    "vwap" : 129.41,
    "label" : "April 23, 15",
    "changeOverTime" : 0.01068
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы