Converting JSON objects in to dictionary in python

前端 未结 3 979
余生分开走
余生分开走 2020-12-17 17:30

I have string of data basically which has a objects with in the objects..

{\"id\":\"XXXX\", \"name\": \"xyz\", \"user\" : { \"id\": \"XXXX\", \"username\":\"         


        
相关标签:
3条回答
  • 2020-12-17 18:16

    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'}
    
    0 讨论(0)
  • 2020-12-17 18:30

    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
    
    0 讨论(0)
  • 2020-12-17 18:31

    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'}}}
    
    0 讨论(0)
提交回复
热议问题