0

私はこのJSONを持っています:

{
    "statussalida": "",
    "registros": [
        {
            "marca": 24,
            "codigo": 6,
            "precio": 71.9,
            "precionormal": 71.9,
            "descripcion": "FERNET IMPERIO",
            "presentacion": "950 CC.",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "COMERCIAL ARGENTINA SRL",
            "marcareal": 0,
            "cantidad": 950,
            "coeficiente": 1000,
            "preciopor": 75.68,
            "unidaddmedida": "cc",
            "cantidadmayorista": 0,
            "preciomayorista": 71.9,
            "etiquetamedida": "Precio x 1000 cc",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjB9.0IBNNbEZXE4dKmyHxQ_oP-8HXMfEm80fI4kBCJSFaZY",
            "usafoto": 0
        },
        {
            "marca": 60,
            "codigo": 888,
            "precio": 274.99,
            "precionormal": 274.99,
            "descripcion": "ACEITE COCINERO DE OLIVA PET.",
            "presentacion": "1 LT",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "MOLINOS RIO DE LA PLATA S.A.",
            "marcareal": 0,
            "cantidad": 1,
            "coeficiente": 1,
            "preciopor": 274.99,
            "unidaddmedida": "Litros",
            "cantidadmayorista": 0,
            "preciomayorista": 274.99,
            "etiquetamedida": "Precio x 1 Litro",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjB9.0IBNNbEZXE4dKmyHxQ_oP-8HXMfEm80fI4kBCJSFaZY",
            "usafoto": 0
        },
        {
            "marca": 60,
            "codigo": 2368,
            "precio": 82.99,
            "precionormal": 82.99,
            "descripcion": "ACEITE COCINERO",
            "presentacion": "1,5 LT.",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "MOLINOS RIO DE LA PLATA S.A.",
            "marcareal": 0,
            "cantidad": 1500,
            "coeficiente": 1000,
            "preciopor": 55.33,
            "unidaddmedida": "cc",
            "cantidadmayorista": 0,
            "preciomayorista": 82.99,
            "etiquetamedida": "Precio x 1000 cc",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjB9.0IBNNbEZXE4dKmyHxQ_oP-8HXMfEm80fI4kBCJSFaZY",
            "usafoto": 0
        },
        {
            "marca": 60,
            "codigo": 2502,
            "precio": 73.49,
            "precionormal": 73.49,
            "descripcion": "*ACEITE COCINERO MEZCLA",
            "presentacion": "1500 CC.",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "MOLINOS RIO DE LA PLATA S.A.",
            "marcareal": 0,
            "cantidad": 1500,
            "coeficiente": 1000,
            "preciopor": 48.99,
            "unidaddmedida": "cc",
            "cantidadmayorista": 0,
            "preciomayorista": 73.49,
            "etiquetamedida": "Precio x 1000 cc",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjMyNzM3fQ.HCyWPsopIAY03WZYRJ7tySUpCOE8Pq_1Ja-IFFLc0RY",
            "usafoto": 0
        },
        {
            "marca": 60,
            "codigo": 6318,
            "precio": 27.99,
            "precionormal": 27.99,
            "descripcion": "*HARINA FAVORITA 000",
            "presentacion": "1KG.",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "MOLINOS RIO DE LA PLATA S.A.",
            "marcareal": 0,
            "cantidad": 1,
            "coeficiente": 1,
            "preciopor": 27.99,
            "unidaddmedida": "Kg",
            "cantidadmayorista": 0,
            "preciomayorista": 27.99,
            "etiquetamedida": "Precio x 1 Kg",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjB9.0IBNNbEZXE4dKmyHxQ_oP-8HXMfEm80fI4kBCJSFaZY",
            "usafoto": 0
        },
        {
            "marca": 60,
            "codigo": 20636,
            "precio": 167.9,
            "precionormal": 167.9,
            "descripcion": "ACEITE COCINERO",
            "presentacion": "3000 CC",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "MOLINOS RIO DE LA PLATA S.A.",
            "marcareal": 0,
            "cantidad": 3000,
            "coeficiente": 1000,
            "preciopor": 55.97,
            "unidaddmedida": "cc",
            "cantidadmayorista": 0,
            "preciomayorista": 167.9,
            "etiquetamedida": "Precio x 1000 cc",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjM3MjkwfQ.ie1dLHrL3EKFYIflt0JYzI_UQzHYsmoUc_CtA2cWYd4",
            "usafoto": 0
        },
        {
            "marca": 60,
            "codigo": 21821,
            "precio": 136.99,
            "precionormal": 136.99,
            "descripcion": "*ACEITE COCINERO OLIVA EX VIRGEN",
            "presentacion": "500 CC",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "MOLINOS RIO DE LA PLATA S.A.",
            "marcareal": 0,
            "cantidad": 500,
            "coeficiente": 1000,
            "preciopor": 273.98,
            "unidaddmedida": "cc",
            "cantidadmayorista": 0,
            "preciomayorista": 136.99,
            "etiquetamedida": "Precio x 1000 cc",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjM5Njc5fQ.nAMCSgGSWfcEM9D_pSFjTHQccBHrx90oSFuEl410WiM",
            "usafoto": 0
        },
        {
            "marca": 60,
            "codigo": 22840,
            "precio": 38.9,
            "precionormal": 38.9,
            "descripcion": "*ACEITE IDEAL MEZCLA",
            "presentacion": "1500 CC",
            "pesable": 0,
            "pesableporunidad": 0,
            "nombremarca": "MOLINOS RIO DE LA PLATA S.A.",
            "marcareal": 0,
            "cantidad": 1500,
            "coeficiente": 1000,
            "preciopor": 25.93,
            "unidaddmedida": "cc",
            "cantidadmayorista": 0,
            "preciomayorista": 38.9,
            "etiquetamedida": "Precio x 1000 cc",
            "foto": "/api/v1/imagenes/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDAyNzE1MDAsInBhZHJlIjoyODU3MzgyLCJpbnN0YW5jaWEiOjI2MDEyfQ.q44kAmHfbI3y_7KyuxUot-ALnYXWAxZy8QmjMg7w5gY",
            "usafoto": 0
        }
    ]
}

しかし、それは 32.000 の記事に対して繰り返されます。

彼らは、入力例を指定する関数があるかどうかを知って'Ace' います。これらの文字を含むすべての記事を json 形式で返し、SQL 検索を行う方法です。

jmespath、jsonpath-ng、ijson などを試しましたが、必要なことができません。

問題は、API からその json を使用する理由と、記事を検索したいときに e コマースに戻らなければならないその json と、可能な限り高速にする必要があることです。

json = requests.get('http://xxx.xxx.x.xx/api/v1/articulosweb')
a = jmespath.search("descripcion == 'Fer'", json.content)

ここで、説明に含まれるすべての記事を返していただきたいと思います'fer'

4

1 に答える 1