Skip to content Skip to sidebar Skip to footer

Converting JSON Objects In To Dictionary In Python

I have string of data basically which has a objects with in the objects.. {'id':'XXXX', 'name': 'xyz', 'user' : { 'id': 'XXXX', 'username':'XYZ', group:{'id': 'XXXX'}}}. You can ch

Solution 1:

I found two errors in your first example:

  1. You have a group in your stringified (Json) version of your dict. This should be a "group" (with quotes).
  2. You misspelled your variable; JSON_DatalistJSON_DataList (lowercase vs. capital L).

After fixing both, I had no problems anymore:

>>> JSON_Datalist = '{"id":"XXXX", "name": "xyz", "user" : { "id": "XXXX", "username":"XYZ", "group":{"id": "XXXX"}}}'
>>> the_dict = json.loads(JSON_Datalist)
>>> the_dict
{u'user': {u'username': u'XYZ', u'group': {u'id': u'XXXX'}, u'id': u'XXXX'}, u'id': u'XXXX', u'name': u'xyz'}

Solution 2:

after fix the problem group should be "group", below code can meet your requirement

json_data={"id":"XXXX", "name": "xyz", "user" : { "id": "XXXX", "username":"XYZ", "group":{"id": "XXXX"}}}
data = json.dumps(json_data)
json_to_python = json.loads(data)
print (json_to_python)


{'id': 'XXXX', 'name': 'xyz', 'user': {'id': 'XXXX', 'username': 'XYZ', 'group': {'id': 'XXXX'}}}

Solution 3:

I have figured out how to generate the_dict['user']['group']['id'] dynamically through Python's eval expression.

Keys is the input from the user, separated by :. Example: user:group:id.

CODE:

RefCount = 0
RespDict = json.loads(JSON_Datalist.content) #convert strings to Java object using JSON
SplitKeys = Keys.split(":") 
KeyCount = len(SplitKeys)
CommandText = "RespDict" #To setup command line based on keys information
while (RefCount <KeyCount):
    CommandText = CommandText+"['"+SplitKeys[RefCount]+"']"
    RefCount = RefCount + 1
    print CommandText        
print eval(CommandText)  #Final key value

Post a Comment for "Converting JSON Objects In To Dictionary In Python"