2015-04-30 1 views
0

Предположим, что у меня есть массив как:Как извлечь столбец из массива формата Json в Python

from datetime import datetime 
from django.shortcuts import render 
from django.http import HttpResponse 
import json as simplejson 
import random 

def getUserInfo(request, user_index): 
    data= "[{\"index\":\"1\",\"username\":\"a\",\"fname\":\"a\",\"lname\":\"a\",\"email\":\"[email protected]\",\"sysadmin\":true},{\"index\":\"2\",\"username\":\"ab\",\"fname\":\"ab\",\"lname\":\"ab\",\"email\":\"[email protected]\",\"sysadmin\":false}]"; 

    result = <something>(data) 

    return HttpResponse(simplejson.dumps(data), content_type = "application/json") 

, пусть USER_INDEX = 1 что писать в результат = что-то? (данные)? так, что я буду получать результат как

результат =

{\"index\":\"1\",\"username\":\"a\",\"fname\":\"a\",\"lname\":\"a\",\"email\":\"[email protected]\",\"sysadmin\":true} 
+0

Ваши данные уже являются строкой, кодированной JSON. Почему вы называете «свалками»? Это просто позволит вам закодированную JSON строку в кодировке JSON. Вы, наверное, хотите «загружать» где-то там. Или, может быть, вы хотите, чтобы «данные» были списком dicts, а не представлением JSON списка dicts, в первую очередь? – abarnert

+0

На самом деле мое требование для ответа таково. –

+0

. Ваше требование для ответа - это представление JSON строки, которая сама является представлением JSON списка dicts? Если это так, почти что-то не так с кодом на другой стороне этого - если кто-то из вашей команды пишет код Ajax, когда вы пишете код Django, вы должны похлопать его, пока он не исправит это. :) – abarnert

ответ

0

Чтобы получить словарь, где индекс = 1 ...

import json 

data = "[{\"index\":\"1\",\"username\":\"a\",\"fname\":\"a\",\"lname\":\"a\",\"email\":\"[email protected]\",\"sysadmin\":true},{\"index\":\"2\",\"username\":\"ab\",\"fname\":\"ab\",\"lname\":\"ab\",\"email\":\"[email protected]\",\"sysadmin\":false}]"; 
data = json.loads(data) 

for i in xrange(len(data)): 
    if data[i].get('index') == "1": 
     print data[i] 

Обратите внимание, что индекс является строкой, и не целое число

+0

Спасибо, что он работал с небольшой пользовательской модификацией моего кода. –