2015-06-14 7 views
-3

У меня есть следующий код в Python:присвоить значение ключа словаря в переменную

def buildXmlUpdate(dfrom, roomId, ldays): 

    start_date_sard.text = dfrom 
    roomId = str(roomId) 
    room_id_sard.text = roomId 
    ldays = {'avail': str(), 'price': str()} 
    availability_in_data.text = ldays['avail'] 
    price_in_data.text = ldays['price'] 

    for n in ldays: 
     print (dfrom, roomId, ldays) 

Теперь при запуске

buildXmlUpdate ('21/12/2015', 1, [{'avail': 1, 'price': 100}, {'avail': 3, 'price': 120}]) 

я получаю следующие выходные данные

('21/12/2015', '1', {'avail': '', 'price': ''}) 
('21/12/2015', '1', {'avail': '', 'price': ''}) 

В другие слова:

('21/12/2015', '1', {'avail': 1, 'price': 100}) 
('21/12/2015', '1', {'avail': 3, 'price': 120}) 

Как вы видите здесь, словарные ключи avail и price установлены в пустую строку, но я хочу установить их в соответствии с аргументами ldays в методе.

Что я делаю неправильно?

+4

Вы специально переписываете значение, переданное как 'ldays', с вашим собственным жестко заданным значением. Зачем ты это делаешь? –

+0

В дополнение к тому, что сказал @DanielRoseman, вы можете указать больше о 'price_in_data.text',' availability_in_data.text' и т. Д. Я думаю, что это элементы XML, но здесь чего-то не хватает. –

ответ

0

Решено:

def buildXmlUpdate(dfrom, roomId, ldays): 

start_date_sard.text = dfrom 
roomId = str(roomId) 
room_id_sard.text = roomId 
#ldays = {'avail': str(), 'price': str()} 
#availability_in_data.text = ldays['avail'] 
#price_in_data.text = ldays['price'] 


for n in ldays: 
    print (dfrom, roomId, n) 
    #availability_in_data.text = get.ldays['avail'] 
    #price_in_data.txt = get.ldays['price'] 
    ldays[-1]['avail'] = str(ldays[-1]['avail']) 
    ldays[-1]['price'] =str(ldays[-1]['price']) 
    availability_in_data.text = ldays[-1]['avail'] 
    price_in_data.text = ldays[-1]['price'] 

Спасибо всем!

Смежные вопросы