当前位置: 首页 > 面试题库 >

解析JSON并将数据存储在Python类中

终翰学
2023-03-14
问题内容

这是我的JSON数据

[
    {
        "id":1,
        "name":"abc",
        "phone": "12345",
        "Charecteristics": [
            {
                "id":1,
                "name":"Good Looking",
                "rating": "Average",
            }
            {
                "id":2,
                "name":"Smart",
                "rating": "Excellent",
            }
        ]
    },
    { ... },
    { ... }
]

我有两个Python类

class Character(object):
    id = 0
    name = ""
    rating = ""

class Person(object):
    id = 0
    name = ""
    phone = ""
    Characteristics = []

我需要解析JSON数据并实例化适当的类。类是不言自明的:即Person具有一系列Character类。

如何实例化它们并适当地存储数据?

另外,我将如何访问特定的人员数据?即人的细节和特征


问题答案:

看看漏勺 ;
它使得将JSON数据结构转换为Python对象变得非常容易。

您定义一个架构:

import colander


class Characteristic(colander.MappingSchema):
    id = colander.SchemaNode(colander.Int(),
                             validator=colander.Range(0, 9999))
    name = colander.SchemaNode(colander.String())
    rating = colander.SchemaNode(colander.String())


class Characteristics(colander.SequenceSchema):
    characteristic = Characteristic()


class Person(colander.MappingSchema):
    id = colander.SchemaNode(colander.Int(),
                             validator=colander.Range(0, 9999))
    name = colander.SchemaNode(colander.String())
    phone = colander.SchemaNode(colander.String())
    characteristics = Characteristics()


class Data(colander.SequenceSchema):
    person = Person()

然后使用以下命令传入您的JSON数据结构:

deserialized = Data.deserialize(json.loads(json_string))


 类似资料:
  • 类: JSON数据: {“列表”:[{“类型”:0,“文本”:“文本1”},{“类型”:1,“问题”:“文本2”}]} 类来保存列表项: 一切顺利,我为JSON字符串中的type和text获得了正确的值。但逮捕仍为空。

  • 我真的被阻止使用Realm解析和存储数据,我有一个大的JSON,我创建了所有的类模型,就像RealM的例子一样。 这是我的错误:由:org引起。json。JSONException:io的0处的值fr。领域例外。RealmException:无法在io上映射Json。领域领域com上的createObjectFromJson(Realm.java:860)。实例截击2。ImagesActivity

  • 问题内容: 我正在尝试解析看起来像这样的JSON数据集: 假设可以有许多这样的数据集。 我想遍历它们中的每一个并获取“名称”和“广告系列ID”参数。 到目前为止,我的代码看起来像这样: 可能挺简单的!我对列表/字典不好:( 问题答案: 使用或(提供默认值)访问词典: 我建议你读一些有关字典的东西。

  • 问题内容: 我在Angular中显示JSON数据时遇到麻烦。我已成功将数据从后端发送到前端(角度),但无法显示它们。 我已经尝试在JSFiddle上模拟类似的情况,尽管我已经从后端准备了数据 获取/发送数据->后端: 获取数据->前端(角度) 带有ng-repeat指令的HTML部分: 谁知道是什么问题吗? 问题答案: 据我所知,您将对象存储为JSON,但从未对其进行解析。因此使用 代替 应该解决

  • 问题内容: 我认为这是一个n00b要做的事情。因此,我从未做到过。然后,我看到FriendFeed做到了这一点,实际上使他们的数据库扩展性更好,并减少了延迟。我很好奇我是否应该这样做。而且,如果是这样,正确的方法是什么? 基本上,什么地方是学习如何将MySQL中的所有内容存储为CouchDB类数据库的好地方?将所有内容存储为JSON似乎会变得更加轻松快捷(无需构建,延迟更短)。 此外,是否容易编辑

  • 问题内容: 我是Jquery,Ajax和JSON的新手。我在解析Json数据时遇到问题。我在Stackoverflow上遇到了很多问题 解析HTML表的JSON对象 访问/处理(嵌套的)对象,数组或JSON 在JavaScript中解析JSON? 如何在JQuery中解析此JSON对象? 还有很多… 我仍然无法解析Json数据。 我的Jquery看起来像: 我已经尝试了所有组合来解析此数据,但是j