2013-11-11 6 views
0

Моя JSON ДИКТ выглядит следующим образом:прилагая список внутри JSON - Python 2.7

{ 
    "end": 1, 
    "results": [ 
     { 
      "expired": false, 
      "tag": "search" 
     }, 
     { 
      "span": "text goes here" 
     } 
    ], 
    "totalResults": 1 
} 

, который является продуктом этой линии:

tmp_response['results'].append({'span':"text goes here"}) 

Моя цель состоит в том, чтобы получить «срок «введите в список« результаты ». Это необходимо для того, когда totalResults> 1.

{ 
    "end": 1, 
    "results": [ 
     { 
      "expired": false, 
      "tag": "search", 
      "span": "text goes here" 
     }, 
    ], 
    "totalResults": 1 
} 

Я попробовал несколько способов, например, с использованием «dictname.update», но это перезаписывает существующие данные в «результаты».

+0

Вы хотите обновить только первый результат или все результаты? –

ответ

2
tmp_response['results'][0]['span'] = "text goes here" 

или, если вы действительно хотите использовать update:

tmp_response['results'][0].update({'span':"text goes here"}) 

, но обратите внимание, что это ненужная создание Dict.

+0

фантастический. благодаря! (Ожидание 11 минут, чтобы принять) – philshem

+4

И еще один вариант: '.update (span = 'text goes here')' для перехода с более поздним ... –

+0

Единственное изменение, которое необходимо сделать, конечно, чтобы обновить [0 ] с фактическим счетчиком списка. – philshem

1

Вот еще одно решение, если вы хотите, чтобы использовать код ниже.

 
>>> tmp_response = {"end": 1,"results": [{"expired": False,"tag": "search"},{"span": "text goes here"}],"totalResults": 1} 
>>> tmp_response['results'][0] = dict(tmp_response['results'][0].items() + {'New_entry': "Ney Value"}.items()) 
>>> tmp_response 
{'totalResults': 1, 'end': 1, 'results': [{'tag': 'search', 'expired': False, 'New_entry': 'Ney Value'}, {'span': 'text goes here'}]} 
>>> 
Смежные вопросы