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

2024-10-01 17:37:12 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我正在解析一个包含许多字典值和键的json文件。我希望能够在另一个字典中创建一个新的dictionary键值,并从旧字典中获取所有内容并将其放入新字典中。在

原始json文件如下所示:

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

以下是修改后的json文件的外观:

^{pr2}$

我必须将runContext的名称改为context,然后我本质上需要创建一个名为user的新对象,并用context存储以前的所有内容,并将其存储在新的object 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新手,因此任何关于这方面的帮助都将非常感谢。谢谢!在


Tags: 文件path对象namejsonfalse内容dictionary
2条回答

这样做:

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

希望有帮助。在

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

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

相关问题 更多 >

    热门问题