Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку? [RSS Feed]

#1 Июнь 6, 2014 01:46:42

lenivaya10001
Зарегистрирован: 2014-06-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

передаю в шаблон

len(x) показывает длину
str(x) показывает весь словарь как строку

ux=x["ux_golova"] #выдает KeyError

len(x)=200 str(x)={'uy_r_ruka_4': ‘1.0’, ‘ux_r_predplecho’: ‘1.0’, ‘uy_camera’: ‘1.0’, ‘r_predplecho’: 544.0, ‘ux_taz’: ‘1.0’, ‘wirina_viski’: ‘1.0’, ‘sdvig_cheljust’: ‘1.0’, ‘sgib_l_ruka_4’: ‘1.0’, ‘uy_l_ruka_2’: ‘1.0’, ‘sgib_l_noga_2’: ‘1.0’, ‘sgib_r_noga_3’: ‘1.0’, ‘uy_golova’: ‘1.0’, ‘uz_golova’: ‘1.0’, ‘ux_r_noga_1’: ‘1.0’, ‘uz_r_stopa’: ‘1.0’, ‘uy_l_golen’: ‘1.0’, ‘zubbl_rot’: ‘1.0’, ‘uz_l_ruka_1’: ‘1.0’, ‘vblsota_viski’: ‘1.0’, ‘uy_l_noga_1’: ‘1.0’, ‘uy_r_predplecho’: ‘1.0’, ‘uz_l_ruka_5’: ‘1.0’, ‘uz_r_noga_3’: ‘1.0’, ‘sgib_r_noga_2’: ‘1.0’, ‘vniz_skulbl’: ‘1.0’, ‘uy_weja’: ‘1.0’, ‘uy_r_kljuchica’: ‘1.0’, ‘ux_r_ruka_3’: ‘1.0’, ‘ux_r_ruka_2’: ‘1.0’, ‘sgib_l_ruka_1’: ‘1.0’, ‘glaza’: 68.0, ‘ux_spina’: ‘1.0’, ‘vniz_rot’: ‘1.0’, ‘ux_r_noga_4’: ‘1.0’, ‘d_otv_uwi’: ‘1.0’, ‘sgib_r_ruka_4’: ‘1.0’, ‘weja’: 272.0, ‘uy_spina_verx’: ‘1.0’, ‘ux_l_kist’: ‘1.0’, ‘l_stopa’: 204.0, ‘sgib_l_ruka_5’: ‘1.0’, ‘l_plecho’: 544.0, ‘uz_r_kljuchica’: ‘1.0’, ‘uy_weja_verx’: ‘1.0’, ‘uy_l_stopa’: ‘1.0’, ‘wirina_cheljust’: ‘1.0’, ‘vverx_makuwka’: ‘1.0’, ‘uz_l_noga_1’: ‘1.0’, ‘ux_r_noga_3’: ‘1.0’, ‘ux_l_noga_3’: ‘1.0’, ‘r_kist’: 136.0, ‘uz_r_ruka_5’: ‘1.0’, ‘uy_l_bedro’: ‘1.0’, ‘ux_l_golen’: ‘1.0’, ‘doy_perespektiva’: ‘1.0’, ‘uz_l_golen’: ‘1.0’, ‘sgib_l_noga_3’: ‘1.0’, ‘ux_l_ruka_5’: ‘1.0’, ‘uz_camera’: ‘1.0’, ‘ux_l_noga_5’: ‘1.0’, ‘uz_l_noga_3’: ‘1.0’, ‘l_kljuchica’: 204.0, ‘uy_spina’: ‘1.0’, ‘uz_l_plecho’: ‘1.0’, ‘uz_r_ruka_3’: ‘1.0’, ‘ux_l_ruka_3’: ‘1.0’, ‘uz_l_kljuchica’: ‘1.0’, ‘uz_l_noga_5’: ‘1.0’, ‘uz_r_noga_1’: ‘1.0’, ‘ux_l_ruka_2’: ‘1.0’, ‘sgib_r_ruka_3’: ‘1.0’, ‘ux_r_ruka_1’: ‘1.0’, ‘ux_r_ruka_5’: ‘1.0’, ‘uy_taz’: ‘1.0’, ‘vblsota_makuwka’: ‘1.0’, ‘sgib_l_noga_5’: ‘1.0’, ‘vpered_cheljust’: ‘1.0’, ‘ux_weja’: ‘1.0’, ‘ux_r_kljuchica’: ‘1.0’, ‘ux_weja_niz’: ‘1.0’, ‘vverx_lob’: ‘1.0’, ‘uy_l_plecho’: ‘1.0’, ‘uz_r_noga_5’: ‘1.0’, ‘sgib_l_ruka_3’: ‘1.0’, ‘l_golen’: 680.0, ‘uz_spina_verx’: ‘1.0’, ‘uz_l_ruka_4’: ‘1.0’, ‘r_golen’: 680.0, ‘wirina_lob’: ‘1.0’, ‘uy_r_noga_2’: ‘1.0’, ‘uy_r_ruka_5’: ‘1.0’, ‘wirina_rot’: ‘1.0’, ‘uz_l_ruka_3’: ‘1.0’, ‘uz_taz’: ‘1.0’, ‘uy_l_kljuchica’: ‘1.0’, ‘ux_r_noga_2’: ‘1.0’, ‘r_bedro’: 680.0, ‘ux_l_noga_2’: ‘1.0’, ‘ux_l_stopa’: ‘1.0’, ‘ux_l_kljuchica’: ‘1.0’, ‘sgib_r_noga_4’: ‘1.0’, ‘otkrblt_rot_cheljust’: ‘1.0’, ‘sgib_r_ruka_2’: ‘1.0’, ‘uy_l_noga_3’: ‘1.0’, ‘uy_weja_niz’: ‘1.0’, ‘ux_r_kist’: ‘1.0’, ‘sgib_r_noga_5’: ‘1.0’, ‘uy_r_noga_4’: ‘1.0’, ‘uy_r_bedro’: ‘1.0’, ‘uz_r_noga_4’: ‘1.0’, ‘uz_weja_niz’: ‘1.0’, ‘ux_l_noga_1’: ‘1.0’, ‘uz_l_noga_2’: ‘1.0’, ‘sgib_r_ruka_1’: ‘1.0’, ‘uz_r_bedro’: ‘1.0’, ‘uz_r_kist’: ‘1.0’, ‘nazad_skulbl’: ‘1.0’, ‘uz_r_ruka_4’: ‘1.0’, ‘nazad_uwi’: ‘1.0’, ‘wirina_nos’: ‘1.0’, ‘l_bedro’: 680.0, ‘ux_r_noga_5’: ‘1.0’, ‘uz_l_noga_4’: ‘1.0’, ‘ux_golova’: ‘1.0’, ‘vblsota_lob’: ‘1.0’, ‘ux_l_predplecho’: ‘1.0’, ‘wirina_skulbl’: ‘1.0’, ‘uz_r_predplecho’: ‘1.0’, ‘sgib_l_noga_1’: ‘1.0’, ‘vblsota_nos’: ‘1.0’, ‘sgib_l_ruka_2’: ‘1.0’, ‘ux_spina_niz’: ‘1.0’, ‘vverx_viski’: ‘1.0’, ‘r_plecho’: 544.0, ‘uz_r_ruka_1’: ‘1.0’, ‘jamochka_cheljust’: ‘1.0’, ‘ux_r_stopa’: ‘1.0’, ‘uz_l_ruka_2’: ‘1.0’, ‘ux_r_bedro’: ‘1.0’, ‘dox_perespektiva’: ‘1.0’, ‘r_kljuchica’: 204.0, ‘uz_l_predplecho’: ‘1.0’, ‘uy_r_noga_5’: ‘1.0’, ‘vverx_zatbllok’: ‘1.0’, ‘uy_l_noga_5’: ‘1.0’, ‘uy_r_plecho’: ‘1.0’, ‘dlina_zatbllok’: ‘1.0’, ‘uz_r_golen’: ‘1.0’, ‘uz_weja_verx’: ‘1.0’, ‘uy_l_predplecho’: ‘1.0’, ‘sgib_l_noga_4’: ‘1.0’, ‘uy_spina_niz’: ‘1.0’, ‘uy_r_ruka_1’: ‘1.0’, ‘uz_spina’: ‘1.0’, ‘l_predplecho’: 544.0, ‘uy_r_noga_3’: ‘1.0’, ‘uy_r_ruka_2’: ‘1.0’, ‘ux_l_ruka_4’: ‘1.0’, ‘nazad_zatbllok’: ‘1.0’, ‘vniz_nos’: ‘1.0’, ‘uy_r_golen’: ‘1.0’, ‘uz_l_kist’: ‘1.0’, ‘vniz_cheljust’: ‘1.0’, ‘r_stopa’: 204.0, ‘uz_r_ruka_2’: ‘1.0’, ‘ux_l_plecho’: ‘1.0’, ‘uy_l_ruka_1’: ‘1.0’, ‘uz_spina_niz’: ‘1.0’, ‘sgib_r_ruka_5’: ‘1.0’, ‘uz_l_bedro’: ‘1.0’, ‘uy_r_kist’: ‘1.0’, ‘uy_r_noga_1’: ‘1.0’, ‘ux_l_ruka_1’: ‘1.0’, ‘uy_r_stopa’: ‘1.0’, ‘uz_weja’: ‘1.0’, ‘uy_r_ruka_3’: ‘1.0’, ‘ux_l_bedro’: ‘1.0’, ‘ux_r_plecho’: ‘1.0’, ‘uz_r_plecho’: ‘1.0’, ‘sgib_r_noga_1’: ‘1.0’, ‘uy_l_noga_4’: ‘1.0’, ‘uy_l_ruka_3’: ‘1.0’, ‘uz_l_stopa’: ‘1.0’, ‘wirina_makuwka’: ‘1.0’, ‘vverx_uwi’: ‘1.0’, ‘l_kist’: 136.0, ‘uz_r_noga_2’: ‘1.0’, ‘spina’: 680.0, ‘uy_l_ruka_5’: ‘1.0’, ‘uy_l_noga_2’: ‘1.0’, ‘ux_l_noga_4’: ‘1.0’, ‘uy_l_kist’: ‘1.0’, ‘taz’: 136.0, ‘ux_weja_verx’: ‘1.0’, ‘uy_l_ruka_4’: ‘1.0’, ‘ux_r_golen’: ‘1.0’, ‘ux_spina_verx’: ‘1.0’, ‘doz_perespektiva’: ‘1.0’, ‘ux_r_ruka_4’: ‘1.0’, ‘ux_camera’: ‘1.0’}

Отредактировано lenivaya10001 (Июнь 6, 2014 01:53:59)

Офлайн

#2 Июнь 6, 2014 05:28:02

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

Где выдает то? По тексту можно понять, что Вы в шаблоне пытаетесь к словарю по ключу обратиться с помощью квадратных скобок. Если это так, то Вы не правы, через точку надо.



Офлайн

#3 Июнь 6, 2014 12:08:23

lenivaya10001
Зарегистрирован: 2014-06-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

FishHook
Где выдает то? По тексту можно понять, что Вы в шаблоне пытаетесь к словарю по ключу обратиться с помощью квадратных скобок. Если это так, то Вы не правы, через точку надо.

подробнее так происходит:
-я получаю request из шаблона в представление
def func1(request,...):
-внутри представления func1 делаю изменяемую копию request.GET как написано в книге
x=request.GET.copy()
-потом отправляю x во внешнюю функцию def func2(x):
rezultat=func2(x)
Беда в том, что внутри func1 я могу обращаться к элементам x по ключу, а после передачи x в func2 я не могу обращаться к элементам x, по ключу , но могу узнать его длину len(x) и могу сделать его строкой и убедиться что x не пустой str(x), а так же могу получить type(x)
постоянно выдает KeyError

Отредактировано lenivaya10001 (Июнь 6, 2014 12:09:07)

Офлайн

#4 Июнь 6, 2014 12:21:34

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

Бред какой-то, показывай код.



Офлайн

#5 Июнь 6, 2014 13:03:07

lenivaya10001
Зарегистрирован: 2014-06-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

вот часть кода участвующая в этом, коментарии убраны некоторые и т.п. Свиду все чисто.

Прикреплённый файлы:
attachment codepart.txt (1,3 KБ)

Офлайн

#6 Июнь 6, 2014 13:15:11

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

Это вообще что?



Офлайн

#7 Июнь 6, 2014 20:11:55

lenivaya10001
Зарегистрирован: 2014-06-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

FishHook
Это вообще что?

а что не так?
paraman - представление принимающее request
остальные функции находятся в другом файле и импортируются.
x передается в нужное место , а
ux=x[ключ]
выдает ошибку KeyError

Отредактировано lenivaya10001 (Июнь 6, 2014 20:13:30)

Офлайн

#8 Июнь 8, 2014 13:46:00

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

lenivaya10001
а что не так?
Всё не так
x=request.GET.copy()
x=list(x.items())
x=dict(x)
def svgmaker(x):
	svg1=""
	svg1=paramansvgbonemaker(x)
и далее по тексту
это бред натуральный стопроцентный
Беда в том, что внутри func1 я могу обращаться к элементам x по ключу
Беда в том, что ты не понимаешь, что ты делаешь.
Дорогой, не стоит меня обвинят в незнании синтаксиса питона, я то как раз с ним знаком, а вот у тебя серьезные проблемы: ты бредишь.



Офлайн

#9 Июнь 8, 2014 15:09:51

lenivaya10001
Зарегистрирован: 2014-06-06
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?

FishHook
так и не нашел в чем баг, но удалось наладить работу, поставив затычку на первый заход во второй функции. Теперь первый запуск проходит в холостую, а потом все работает в штатном режиме.

затычка такая:

def func2(x):
    #функция где ошибка вылезает в первом заходе
    if x: pass
    else: return "первый запуск"
    #текст функции
    return svg
def func1(request):
    #представление которое принимает данные формы из шаблона temp.html
    x=request.GET.copy()
    svg=func2(x)
    return render_to_response('temp.html', locals(),mimetype="text/html")

В таком виде работает, но так и не понятно почему первое обращение к представлению, выдает KeyError внутри func2

Офлайн

  • Начало
  • » Django
  • » Cms django. Словарь передан в функцию. Почему невозможно обратиться по ключу, но можно получить длину словаря и конвертировать его в строку?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version