如何使用旧字典键的先前值在另一个字典内创建字典键

时间:2017-07-15 20:42:37

标签: python json dictionary scripting

所以我通过一个包含许多字典值和键的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文件但是我无法从上下文中获取内容并将其放入一个名为user的新对象

这是我写的脚本:

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的新手,因此对此有任何帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

您的UPDATE wp_options set option_value=REPLACE(option_value,'Site Url','127.0.0.1') where option_name='siteurl'; UPDATE wp_options set option_value=REPLACE(option_value,'Site Url','127.0.0.1') where option_name='home'; UPDATE wp_posts SET post_content=REPLACE(post_content,'Site Url', '127.0.0.1') ; 未定义。它应该是:

context

答案 1 :(得分:0)

这样做:

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')之前,jObject['context']['user'] jObject['context']中有您需要的词典。 现在context = jObject.pop('runContext')jObject将为空({}),然后您将添加键jObject['context'] = {}和上下文jObject['context']['user'] = context

希望有所帮助。