Python 如何将一个值的多个键从字典转储到json以写入文件

Python 如何将一个值的多个键从字典转储到json以写入文件,python,python-3.x,algorithm,Python,Python 3.x,Algorithm,我有一本字典。它有两个键代表一个值。里面有多件物品。我想将其转储到json,以便写入文件。当我尝试下面的代码时,我一无所获。你对这次手术有什么建议 def __init__(self): self.news_dict = {} def add_to_dict(self, newspaper, topic, news): if not (newspaper,topic) in self.news_dict: self.news_dict[newspaper,topi

我有一本字典。它有两个键代表一个值。里面有多件物品。我想将其转储到json,以便写入文件。当我尝试下面的代码时,我一无所获。你对这次手术有什么建议

def __init__(self):
   self.news_dict = {}


def add_to_dict(self, newspaper, topic, news):

   if not (newspaper,topic) in self.news_dict:
       self.news_dict[newspaper,topic] = []

   if not news in self.news_dict[newspaper,topic]:
       self.news_dict[newspaper,topic].append(news)
。。。。在代码的另一部分中

for descriptions in data["result"]:
    self.add_to_dict(descriptions["source"], category, descriptions["description"])

output_writing = json.dumps(self.news_dict)
print(output_writing)

with open(os.path.dirname(os.path.abspath(__file__)) + '/record.json', "w") as json_file:
    json.dump(output_writing, json_file) 

# read json string
with open(os.path.dirname(os.path.abspath(__file__)) + '/record.json') as json_file:
     output_reading = json.load(json_file)

# json string to dic
output_reading = json.loads(output_reading)

基本问题是Python字典可以将数据结构作为键,但JSON哈希要求键是字符串。因此,无法将Python结构表示为JSON

如果您只需要一种序列化/反序列化数据的方法,可以使用。如果希望它是人类可读的,则需要编写自定义序列化模块


如果希望它看起来像JSON,最好的办法是编写一个自定义函数,将数据结构转换为一个字符串,其中每个键都已转换为数据结构的自定义JSON表示形式,然后将其转换为JSON。它不会很漂亮,而且在反序列化过程中,您还必须反向进行。

关于json.dump(self.news\u dict,json\u file)?我在“output\u writing=json.dumps(self.news\u dict)”这一部分什么都没有如果你打印self.news\u dict如何?self.news\u dict在将来正常工作,你应该提供一个-最少的代码,最少的示例数据-刚好足以重现问题并包括异常(如果有)。我需要将dict写入文件,然后读取它。你能给我举个例子吗?举个例子?泡菜?只需
导入pickle
,然后
pickle.dump
pickle.load