繁体   English   中英

Python将多个数据导出到json文件

[英]Python exporting multiple data to a json file

我正在使用python开发通讯录,并且正在尝试将数据(名称,城镇和地址)保存到json文件中。

问题是,当它保存到json文件时,会在json文件中创建一个新对象

例子-

   {"Object1": {"Town": "town", "Address": "address"}}
   {"Object2": {"Town": "town", "Address": "address"}}

由于这种布局,每当尝试对其执行任何操作时都会收到此错误

错误-

    ValueError: Extra data: line 2 column 1 - line 2 column 55 (char 55 - 109) 

我怎样才能使我的json文件布局像这样

范例-

    {"Object1": {"Town": "town", "Address": "address", "Object2": {"Town": "town", "Address": "address"}}

这是我的代码-

import json

class Object:
    name = "Name"
    address = "Address"
    town = "Town"

    def return_info(self):
        dictionary = {self.name: {"Address": self.address, "Town": self.town}}
        return dictionary

    def __init__(self, entered_name, entered_town, entered_address):
        self.name = entered_name
        self.town = entered_town
        self.address = entered_address

def update(file):
    with open("data.json", "a") as outfile:
        json.dump(file, outfile)

new_object = Object("name", "town", "address")
update(new_object.return_info())

您可以仅将所有地址保留在字典中,然后转储到json文件中。

addressmap = {
    "Object1": {"town": "town", "address": "address"},
    "Object2": {"town": "town", "address": "address"}
}

with open("addresses.json", "w") as f:
    json.dump(addressmap, f, indent=4)

您想要的对象的示例意味着在Object1Object1 Object2 ,而在我看来,您想要的是对象列表:

import json
dictlist = [{"Object1": {"Town": "town", "Address": "address"}},
            {"Object2": {"Town": "town", "Address": "address"}}]
with open("output.json", "w") as outfile:
  json.dump(dictlist, outfile)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM