2017-07-15 62 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

希望有所幫助。

相關問題