Member 13856665 Ответов: 0

Как сохранить вызовы api в базе данных mysql ?


Я пытаюсь сохранить вызов API в базе данных mysql, но что-то не так с моим кодом, не знаю, что это такое.

from aliexpress_api_client import AliExpress
import pymysql.cursors

aliexpress = AliExpress('9420', 'bazaarmaya')

data = aliexpress.get_product_list(['productId', 'productTitle', 'salePrice', 'originalPrice'], 'drones')

#print(data)

connection = pymysql.connect(host='localhost',
                             user='root',
                             password='Kradz579032!!',
                             db='aliexpressapidb',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
try:
    with connection.cursor() as cursor:
        sql_template ="""
        INSERT INTO producttable (productId, productTitle, salePrice, originalPrice )
            SELECT * FROM (SELECT %(productId)s, %(productTitle)s, %(salePrice)s, %(originalPrice)s) AS tmp
            WHERE NOT EXISTS (
                SELECT productId FROM producttable WHERE productId = %(productId)s
            )
            LIMIT 1;
        """

        for product in data:
            print('%s %s %s %s' % (product['productId'], product['productTitle'], product['salePrice'], product['originalPrice']))

            cursor.execute(sql_template, {product['productId'], product['productTitle'],
                                          product['salePrice'], product['originalPrice']})


        connection.commit()

finally:
    connection.close()


Что я уже пробовал:

Я пробовал спрашивать в stackoverflow, Facebook и даже пробовал другие методы, но потерпел неудачу.

Richard MacCutchan

- но что-то не так с моим кодом."
Пожалуйста, объясните, какие ошибки вы видите и где они происходят.

Member 13856665

Я запускаю это на PyCharm так что вот возвращенные сообщения об ошибках :

Ошибка:
/Пользователи/reezalaq/PycharmProjects/Aliexpress/venv/bin/python /Users/reezalaq/Downloads/newali/script.py
Обратная трассировка (самый недавний призыв последнего):
Файл "/Users/reezalaq/Downloads/newali/script.py", строка 28, в <модуле>
печать('%ы %ы %ы %ы' % (продукт['идентификатор'], продукт['productTitle'], продукт['salePrice'], продукт['originalprice это']))
TypeError: строковые индексы должны быть целыми числами

Процесс завершился с кодом выхода 1

Richard MacCutchan

Это сообщение об ошибке ясно, вам нужно использовать целые числа для значений индекса в вашем product массив.

Member 13856665

как же так ?

Richard MacCutchan

Поскольку я понятия не имею о структуре ваших данных, я не знаю.

Member 13856665

Вот как это выглядит :

https://hastebin.com/ogexopibuv.py

Я спрашивал так много мест, но никто не смог найти решение.

Richard MacCutchan

По-моему, это похоже на JSON. Видеть 19.2. в JSON — формате JSON кодер и декодер — документации по языку Python 3.4.8 [^].

Member 13856665

он возвращает это :

{
"средства": [
{
"productTitle": "Cheerson CX-10 CX10 2.4 G Remote Control Toys 4CH 6Axis RC Quadcopter Mini RC Helicopters Radio Control Aircraft RTF Трутень",
"salePrice": "US $16.79",
"originalPrice": "us $20.99",
"productId": 32850277404
},
{
"productTitle": "оригинальный SYMA X5C RC Трутень С 2-мегапиксельной HD-камерой 2.4 G 6-осевой пульт дистанционного управления вертолетом Quadcopter или SYMA X5 Dron без камеры",
"salePrice": "us $26.69",
"originalPrice": "us $26.69",
"productId": 32851823794
},
{
"productTitle": "в наличии! Конечно H122D Х4 5.8 г FPV камеры RC Micro гоночный Трутень Quadcopter W/ 720P Camera Goggles совместимый Fatshark VS MJX B6",
"salePrice": "US $79.99",
"originalPrice": "us $159.98",
"productId": 32840152266
},
{
"productTitle": "SYMA X5UW Трутень с WiFi камерой HD 720P передача в реальном времени FPV Quadcopter 2.4 G 4CH RC вертолет дрон квадрокоптер Трутни",
"salePrice": "US $80,01",
"originalPrice": "us $89.90",
"productId": 32740736624
},
{
"productTitle": "JJRC H31 RC Трутень Водонепроницаемое сопротивление квадрокоптер вертолет без камеры или трутень с камерой HD или Трутни с камерой wifi FPV",
"salePrice": "us $31.99",
"originalPrice": "US $42.65",
"productId": 32845232075
},
{
"productTitle": "MJX Bugs 6 B6 RC Трутень 2.4 Г Безщеточный Мотор Гоночный Трутень с HD камерой FPV Quadcopter Helicopter VS BUGS 3 SYMA X8 pro X8pro",
"salePrice": "US $86.90",
"originalPrice": "us $86.90",
"productId": 32824071536
},
{
"productTitle": "квадрокоптер SYMA X5HW Трутень с камерой Wifi FPV HD Real-time 2.4 G 4CH RC Helicopter Quadcopter RC Dron Toy (X5SW Upgrade)",
"salePrice": "US $64.70",
"originalPrice": "us $81.90",
"productId": 32750186087
},
{
"productTitle": "в наличии JJRC H48 MINI 2.4 G 4CH 6 Axis 3D Flips RC Трутень Горючего rtf против Н36 Нибиру E010 для детей дети Рождественский подарок игрушки",
"salePrice": "US $12.99",
"originalPrice": "us $25.98",
"productId": 32840378148
},
{
"productTitle": "RC Трутни с hd камерой RC вертолет Складной мини Трутень FPV квадрокоптер самолет селфи Трутень Складной Трутень GW018 JY018 JD018",
"salePrice": "US $15.24",
"originalPrice": "us $25.40",
"productId": 32816636195
},
{
"productTitle": "RC Трутень с камерой HD 0.3 MP/2.0 MP RC Quadcopter 2.4 Ghz Quadrocopter FPV гоночный вертолет пульт дистанционного управления Dron Toys Dwi D4",
"salePrice": "us $27.19",
"originalPrice": "us $33.99",
"productId": 32655644460
},
{
"productTitle": "Flying Camera DM X5C-1 RC Helicopter 2.4 G 4CH 6-Axis Трутень С HD камерой X5C Quadcopter DM005 аккумулятор большой емкости Dron",
"salePrice": "US $36.90",
"originalPrice": "us $72.35",
"productId": 32619348443
},
{
"productTitle": "3MP RC Трутень Syma X5C FPV RC Quadcopter mini Трутень с камерой 2.4 G 6-осевой радиоуправляемый вертолет Трутни С самолета камеры HD дрон ",
"salePrice": "us $25.98",
"originalPrice": "us $37.11",
"productId": 32862639069
},
{
"productTitle": "MJX Bugs 6 Professional Racing RC Трутень с камерой HD 720P FPV Live Video Quadcopter RTF KEDIOR X8SW Hero 3",
"salePrice": "US $54.80",
"originalPrice": "us $107.45",
"productId": 32818024174
},
{
"productTitle": "Hubsan X4 STAR H507A App совместимый Wifi FPV RC Трутни С 720P HD камерой GPS RC Headless Quadcopter RTF с передатчиком",
"salePrice": "US $79.28",
"originalPrice": "us $79.28",
"productId

Richard MacCutchan

Да, и как я уже сказал выше, это JSON, поэтому вам нужно перейти по ссылке, которую я дал вам, чтобы десериализовать его в объекты Python.

0 Ответов