0

我的代码遇到问题。事实上,我需要创建我的类(专利)的实例列表。该列表的名称是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]

先感谢您!

4

1 回答 1

0

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

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__)
于 2020-05-31T19:28:57.490 回答