【问题标题】:Python exporting multiple data to a json filePython将多个数据导出到一个json文件
【发布时间】:2015-04-22 06:38:09
【问题描述】:

我正在使用 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())

【问题讨论】:

  • 为什么要将对象保存在对象中?你不会保存对象列表吗?

标签: python json python-3.x


【解决方案1】:

您可以将所有地址保存在 dict 中,然后转储到 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)

【讨论】:

    【解决方案2】:

    您的所需对象示例意味着在Object1 中包含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)
    

    【讨论】:

    • 这正是我想要的。
    • 但是我怎么能添加/追加到那个
    • 类似于你如何使用数组 - array.append()
    猜你喜欢
    • 1970-01-01
    • 2023-02-26
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    相关资源
    最近更新 更多