Получение данных из ответа JSON и анализ в Python - PullRequest
0 голосов
/ 14 января 2019

У меня проблема с получением моих данных и анализом JSON, который мне дают. Я отлично извлек JSON, проанализировал нужные мне элементы, но когда я возвращаю данные на свою страницу, он выходит из строя, когда я добавляю 5-й элемент. Есть ли способ решить эту проблему, используя словари вместо операторов «if» или используя операторы if, чтобы мне вернули правильные данные?

Я пробовал много разных вещей, таких как: реализация dict, анализ данных с помощью json.dumps () и другие разные вещи.

shopInfo = ['shopItemTitle', 'shopItemPrice',
            'shopItemWeight', 'shopItemQuantity', 'shopItemPicture']
@app.route("/shop", methods=['GET', 'POST'])
def shop():
    shopItemTitle = []
    shopItemPrice = []
    shopItemWeight = []
    shopItemQuantity = []
    shopItemPicture = []
    shopItemPlace = []
    value = []
    res = requests.get(url=urlShopItemsGet)
    dataReturn = res.json()
    length = int(len(dataReturn))

for i in range(len(shopInfo)):
    for j in range(length):
        target = dataReturn[j]
        target = target[shopInfo[i]]
        shopItemPlace.append(target)
        if shopInfo[i] == 'shopItemTitle':
            shopItemTitle.append(shopItemPlace[j])
        elif shopInfo[i] == 'shopItemPrice':
            shopItemPrice.append(shopItemPlace[j+3])
        elif shopInfo[i] == 'shopItemWeight':
            shopItemWeight.append(shopItemPlace[j+6])
        elif shopInfo[i] == 'shopItemQuantity':
            shopItemQuantity.append(shopItemPlace[j+9])
        elif shopInfo[i] == 'shopItemPicture':
            shopItemPicture.append(shopItemPlace[j+12])
return render_template("shop.htm", dataReturn=dataReturn, value=value, shop=zip(shopItemTitle, shopItemPrice, shopItemWeight, shopItemPicture, shopItemQuantity))

Учитывая это JSON:

[
{u'checked': False, u'shopItemQuantity': u'4', u'shopItemPrice': u'2.00', u'shopItemWeight': u'lb', u'shopItemTitle': u'TestTitle', u'shopItemPicture': u'placeholder', u'updatedAt': 1547419711871, u'id': u'59f3c952-1785-11e9-a701-ce3809c0a2a4', u'createdAt': 1547419711871}, 

{u'checked': True, u'shopItemQuantity': u'22', u'shopItemPrice': u'3.74', u'shopItemWeight': u'lb', u'shopItemTitle': u'Greens', u'shopItemPicture': u'https://s3.amazonaws.com/shopimages/shop/product1.jpg', u'updatedAt': 1547413032445, u'id': u'ccb4370c-1775-11e9-aec3-ce3809c0a2a4', u'createdAt': 1547413032445}, 

{u'checked': True, u'shopItemQuantity': u'2', u'shopItemPrice': u'3.00', u'shopItemWeight': u'lb', u'shopItemTitle': u'Okra', u'shopItemPicture': u'https://s3.amazonaws.com/shopimages/shop/product4.jpg', u'updatedAt': 1547414478896, u'id': u'2adb633e-1779-11e9-aec3-ce3809c0a2a4', u'createdAt': 1547414478896},

{u'checked': True, u'shopItemQuantity': u'3', u'shopItemPrice': u'4.30', u'shopItemWeight': u'oz', u'shopItemTitle': u'Sorrel', u'shopItemPicture':u'https://s3.amazonaws.com/shopimages/shop/product1.jpg', u'updatedAt': 1547413026608, u'id': u'c939fc10-1775-11e9-aec3-ce3809c0a2a4', u'createdAt': 1547413026608}

]

Мне нужно проанализировать и сохранить данные следующим образом:

shopItemTitle = ["Sorrel", "Greens", "Okra"]
shopItemPrice = ["3.00", "4.30", "3.74"]
shopItemWeight = ["oz", "lb", "lb"]
shopItemQuantity = ["2", "3", "22"]
shopItemPicture = ["https://s3.amazonaws.com/shopimages/shop/product4.jpg",                "https://s3.amazonaws.com/shopimages/shop/product1.jpg",               "https://s3.amazonaws.com/shopimages/shop/product1.jpg"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...