我有一个约有10个元素的JSON对象。我只需要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:列表索引必须是整数或切片,而不是str
我可以分别参考每个元素,因此它们是有效的,例如,屏幕的输出正常工作。但是我不知道如何将它们放在新的较短的json中以输出文件。
最简单的方法是创建您感兴趣的密钥列表,然后使用字典理解:
keys = ['id', 'date', 'from_id', 'message']
new_dict = {key: orig_json_dict['message'][key] for key in keys}