Search code examples
pythonjsonpython-2.7getjson

How to fetch a column from a Json format array in Python


Suppose i have a array like:

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\":\"a1@xyz.com\",\"sysadmin\":true},{\"index\":\"2\",\"username\":\"ab\",\"fname\":\"ab\",\"lname\":\"ab\",\"email\":\"ab1@xyz.com\",\"sysadmin\":false}]";

    result = <something>(data)

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

for suppose user_index = 1 what to write in result = something? (data)? so that i will get the result as

result =

{\"index\":\"1\",\"username\":\"a\",\"fname\":\"a\",\"lname\":\"a\",\"email\":\"a1@xyz.com\",\"sysadmin\":true}

Solution

  • To get the dictionary where index = 1...

    import json
    
    data = "[{\"index\":\"1\",\"username\":\"a\",\"fname\":\"a\",\"lname\":\"a\",\"email\":\"a1@xyz.com\",\"sysadmin\":true},{\"index\":\"2\",\"username\":\"ab\",\"fname\":\"ab\",\"lname\":\"ab\",\"email\":\"ab1@xyz.com\",\"sysadmin\":false}]";
    data = json.loads(data)
    
    for i in xrange(len(data)):
        if data[i].get('index') == "1":
            print data[i]
    

    Please note that your index is a string, and not an integer