Python,如何从另一个Json对象构建一个新的Json对象

问题描述 投票:-1回答:1

我有一个Json对象,里面有大约10个元素。我只需要10个元素中的4个,并希望将4个元素放在一个新的Json对象中。我尝试了不同的方法,但只是出错。我的上一个代码:

import json
from pprint import pprint
import time
import datetime

def update_handler(client, update, users, chats):
    #print(update)
    message = str(update)
    data = json.loads(message)
    if data["_"] == "types.UpdateNewMessage":
        from_id = data["message"]["from_id"]
        if from_id == 390189088:
            #output message to screen
            print ("message id: ", data["message"]["id"])
            print ("date/time: ", data["message"]["date"])
            print ("from: ", data["message"]["from_id"])
            print ("message: ", data["message"]["message"])
            print ("**************")
            #output partial message to file
            json_data = {["message"]["id"],["message"]["date"],["message"]["from_id"],["message"]["message"]}
            with open('chartguysalerts.txt', 'a') as outfile:
                json.dump(json_data, outfile)

该函数的最后一行给出了错误:TypeError:list indices必须是整数或切片,而不是str

我可以分别引用每个元素,因此它们是有效的,例如,输出到屏幕的工作正常。但我不知道如何将它们放在一个新的较短的Json中输出到文件。

python json
1个回答
1
投票

最简单的方法是创建一个您感兴趣的键列表,然后使用字典理解:

keys = ['id', 'date', 'from_id', 'message']

new_dict = {key: orig_json_dict['message'][key] for key in keys}
© www.soinside.com 2019 - 2024. All rights reserved.