繁体   English   中英

如何创建给定 class 的实例列表

[英]How to create a list of instances of a given class

我的代码遇到问题。 事实上,我需要创建我的类(专利)的实例列表。 该列表的名称是patent_ints。 但是当我试图验证该列表中的任何元素是否是专利元素时,我总是得到一个错误的响应。 当迭代第一个元素时,就像"<__main__.Patent at 0x7f107820b710>" 这是我的代码,我需要帮助!

import json
import datetime

patent_data = json.loads(open('NASA_data.json', "r").read())
unique_center = []
for thing in patent_data["Patent_Information"]["Results"]:
    for val in thing:
        if(val == 'NASA Center'):
            unique_center.append(thing[val])

total_num_centers = len(set(unique_center))
class Patent:
    def __init__(self, abbreviated_organization_name, dict_data):
        self.org_name = abbreviated_organization_name
        self.title = dict_data["Title"]
        # initialize instance variable called year. The value can be extracted from dict_data. 
        # This should be a four digit string.
        self.year = str(datetime.datetime.strptime(dict_data['Date'], '%m/%d/%Y').year) #dict_data['Date'].split('/')[2]
        # initialize an instance variable called month. The value can be extracted from dict_data.
        # This should be a two digit string.
        self.month = str(datetime.datetime.strptime(dict_data['Date'], '%m/%d/%Y').month) #dict_data['Date'].split('/')[0]
        # initialize an instance variable called day. The value can be extracted from dict_data.
        # This should be a two digit string.
        self.day = str(datetime.datetime.strptime(dict_data['Date'], '%m/%d/%Y').day) #dict_data['Date'].split('/')[1]
        self.id = dict_data['Case Number']
        self.access_limit = dict_data['SRA Final']


patent_ints = [Patent(i, data) for i in unique_center for data in patent_data["Patent_Information"]["Results"]]
patent_ints[0]

先感谢您!

<__main__.Patent at 0x7f107820b710>是您尝试打印 class 时的默认表示。 __str____repr__方法添加到 class 并定义一些自定义逻辑以将所需的详细信息作为字符串返回:

class Patent:
    def __init__(self, abbreviated_organization_name, dict_data):
        ...

    def __repr__(self):
        # return a dictionary of items in the class but you can return whatever you want
        # you could do f'{self.title} {self.id} {self.year}-{self.month}-{self.day}' but str(self.__dict__) is quick to test
        return str(self.__dict__)

暂无
暂无

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

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