@MaratGan

Что нужно изменить, чтобы в return отображался результат как надо?

Добрый день!

Подскажите, пожалуйста, как мне изменить функцию, чтобы результат в return был такой:

spoiler

Mann 2 шт. по 120 руб. = 240 руб.
Filtron 1 шт. по 150 руб. = 150 руб.
KYB 4 шт. по 1230 руб. = 4920 руб.
RTS 3 шт. по 730 руб. = 2190 руб.
CTR 5 шт. по 897 руб. = 4485 руб.
PartsMall 9 шт. по 45 руб. = 405 руб.
Lemforder 10 шт. по 754 руб. = 7540 руб.
Abro 6 шт. по 98 руб. = 588 руб.
Sakura 8 шт. по 1235 руб. = 9880 руб.
Luzar 12 шт. по 654 руб. = 7848 руб.
------ Общая сумма заказа 38246 руб. ------


Сейчас вот такой код и при выводе на экран если print(r) поместить в цикл, то результат именно такой, но мне нужно чтобы return был такой)

import json
import sys

def check_count(count):
    if count and count[0] != '#':
        return int(count)
    else:
        return 0
	


def handle(data):
    #data = json.loads(str_params)
    brand_list = []
    price_list = []
    quantity_list = []
    sum_list = []
    brends1 = data['brends1']
    brends2 = data['brends2']
    brends3 = data['brends3']
    brends4 = data['brends4']
    brends5 = data['brends5']
    brends6 = data['brends6']
    brends7 = data['brends7']
    brends8 = data['brends8']
    brends9 = data['brends9']
    brends10 = data['brends10']

    price1 = check_count(data['price1'])
    price2 = check_count(data['price2'])
    price3 = check_count(data['price3'])
    price4 = check_count(data['price4'])
    price5 = check_count(data['price5'])
    price6 = check_count(data['price6'])
    price7 = check_count(data['price7'])
    price8 = check_count(data['price8'])
    price9 = check_count(data['price9'])
    price10 = check_count(data['price10'])

    quantity1 = check_count(data['quantity1'])
    quantity2 = check_count(data['quantity2'])
    quantity3 = check_count(data['quantity3'])
    quantity4 = check_count(data['quantity4'])
    quantity5 = check_count(data['quantity5'])
    quantity6 = check_count(data['quantity6'])
    quantity7 = check_count(data['quantity7'])
    quantity8 = check_count(data['quantity8'])
    quantity9 = check_count(data['quantity9'])
    quantity10 = check_count(data['quantity10'])


    brand_list.extend([brends1, brends2, brends3, brends4, brends5, brends6,
    brends7, brends8, brends9, brends10])
    price_list.extend([price1, price2, price3, price4, price5, price6,
    price7, price8, price9, price10])
    quantity_list.extend([quantity1, quantity2, quantity3, quantity4,
    quantity5, quantity6, quantity7, quantity8, quantity9, quantity10])

    for i, elem in enumerate(brand_list):
        s = int(price_list[i]) * int(quantity_list[i])
        r =  (str(brand_list[i]) + ' '+ str(quantity_list[i]) + ' шт.' + ' по ' + str(price_list[i]) + 
         ' руб.' + ' = ' + str(s) + ' руб.')
        s = int(price_list[i]) * int(quantity_list[i])


        sum_list.extend([s])
        rez = '------ Общая сумма заказа ' + str(sum(sum_list)) + ' руб. ------'

        print(r)
    print(rez)
    return json.dumps(r)



	

if __file__ == sys.argv[0]:
	print(handle({
    'brends1': 'Mann', 
    'brends2': 'Filtron',
    'brends3': 'KYB',
    'brends4': 'RTS',
    'brends5': 'CTR',
    'brends6': 'PartsMall',
    'brends7': 'Lemforder',
    'brends8': 'Abro',
    'brends9': 'Sakura',
    'brends10': 'Luzar',
    'price1' : '120',
    'price2' : '150',
    'price3' : '1230',
    'price4' : '730',
    'price5' : '897',
    'price6' : '45',
    'price7' : '754',
    'price8' : '98',
    'price9' : '1235',
    'price10' : '654',
    'quantity1': '2',
    'quantity2': '1',
    'quantity3': '4',
    'quantity4': '3',
    'quantity5': '5',
    'quantity6': '9',
    'quantity7': '10',
    'quantity8': '6',
    'quantity9': '8',
    'quantity10': '12',}))


Если этот код то return json.dumps(r)
"Luzar 12 \u0448\u0442. \u043f\u043e 654 \u0440\u0443\u0431. = 7848 \u0440\u0443\u0431."
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
@zexer
Попробуйте использовать json.dump и ensure_ascii=False внутри.
P.S. Существует разница между json.dump и json.dumps, изучите этот момент, чтобы лучше разобраться.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bacon
А теперь перепишите эту функции для 1000 позиций, тяжело наверно когда знаешь что такое цикл, но не понимаешь когда им надо пользоваться. А то что там \u это фигня, все нормальные приложения, сервисы, либы и прочие поймут.
Ответ написан
Ваш ответ на вопрос

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

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