2017-07-15 188 views
1

因此,我通过具有许多字典值和键的json文件进行解析。我希望能够在另一个字典中创建一个新的字典键值,并从旧字典中获取所有内容并将其放入新字典中。如何使用旧字典键的先前值在另一个字典中创建字典键

原来这里是JSON文件的样子:

{"runContext": {"isAdmin": "false", "isSimulated":false, "customerId": "132", "acId": "1445017", "id":"magtest1"}} 

下面是修改的JSON文件应该是什么:

{"context": {"user":{"id":"magtest1", "isSimulated":false, "customerId":"132", "isAdmin":false "acID": "1445017}}} 

我不得不改变的runContext名称上下文,然后之后,我基本上需要创建一个名为user的新对象,并将所有先前的内容与上下文一起存储并存储在新的对象用户中。我用的可是我无法从上下文中考虑的内容,并为被叫用户

这里新对象的路径名打开原始JSON文件是我写的剧本:

def jsonparse(): 
    user_path= input("Please enter path name:") 
    with open(user_path) as f: 
     x = f.read() 
    jObject = json.loads(x) 
    context = jObject['runContext'] 
    jObject['context']= jObject.pop('runContext') 
    jObject['context']['user'] = {} 
    jObject['context']['user'] = context 

    print jObject 

if __name__ == '__main__': 
    jsonparse() 

我的问题是当我试图把它打印出来,它看起来像这样

{"context":{user:{...} 

它不输出出来,因为我是新来的JSON任何帮助表示赞赏用户 任何值。谢谢!

+0

其中是'context'定义? – frozen

回答

0

您的context未定义。它应该是:

context = jObject.pop('runContext') 
jObject['context']['user'] = {} 
jObject['context']['user'] = context 
+0

我编辑了帖子。 context = jObject ['runContext']。它仍然没有把所有的键和值放入用户。 –

0

这样做:你有你在jObject['context']['user']需要jObject['context']字典

def jsonparse(): 
    user_path= input("Please enter path name:") 
    with open(user_path) as f: 
     x = f.read() 
    jObject = json.loads(x) 
    context = jObject.pop('runContext') 
    jObject['context'] = {} 
    jObject['context']['user'] = context 

    print jObject 

if __name__ == '__main__': 
    jsonparse() 

jObject['context']= jObject.pop('runContext')之前。 现在context = jObject.pop('runContext')jObject将是空的({}),然后您将添加键jObject['context'] = {}和上下文jObject['context']['user'] = context

希望有所帮助。

相关问题