Когда я выполнить эту программу, я получаю пустой список:Python потерять список объектов
Я ожидал его, чтобы создать список объектов и добавлять объекты в список obj_list_addresses.
Тогда, когда я вызываю get_good_addresses(), я ожидаю, что он вернется через этот список и выполнит код для каждого объекта в списке, только список возвращает empty [] почти как его переписывание.
Я довольно новичок в python и знаю, что мне не хватает чего-то важного.
Главная:
from address import Address
from address_processor import AddressProcessor
addresses=[]
addresses = open('test.txt').read().splitlines()
proccess_addresses = AddressProcessor(addresses)
proccess_addresses.create_addresses_obj()
proccess_addresses.get_good_addresses()
AddressProcessor Класс:
import multiprocessing
from address import Address
class AddressProcessor(object):
"""AddressProcessor will process a txt file with addresses"""
def __init__(self, addresses):
self.addresses = addresses
self.return_addresses = []
self.obj_list_addresses = []
def create_addresses_obj(self):
jobs = []
for address in self.addresses:
process = multiprocessing.Process(target=self.worker, args=(address,))
jobs.append(process)
process.start()
for job in jobs:
job.join()
print('created objects for addresses in text file')
def worker(self, address):
obj = Address(address)
self.obj_list_addresses.append(obj)
def get_good_addresses(self):
print self.obj_list_addresses
Адрес Класс:
from string import replace
from pprint import pprint
class Address(object):
"""
This is address class send it an address it will look up
the addy and return json string of the parcels that matched the address
then update status if it was the only one returned its good if not its bad
"""
def __init__(self, address):
self.address = address
self.status = ''
self.json_string = ''
self.set_json_string()
def get_address(self):
return self.address
def set_json_string(self):
r = requests.get('urlbasegoeshere'+replace(self.address," ","+")+'&pagesize=40&page=1')
self.json_string = r.json
self.set_status()
def set_status(self):
if len(self.json_string) == 1:
self.status = 1
elif len(self.json_string)!=1:
self.status = 0
def get_status(self):
return self.status
Я настраивал многопроцессорных пытался узнать, как это работает. В конечном итоге я буду проходить через каждый адрес в списке и выполнять несколько запросов на очистку данных и загрузку PDF-файлов для каждого адреса. Я надеялся использовать многопроцессорность, чтобы соединения и файлы PDF были загружены параллельно. Я приму свой ответ и позже открою другой, чтобы помочь с многопроцессорной обработкой. Спасибо – Mrd05d
@ Mrd05d Database - лучший способ сделать это. –
Вы говорите, что база данных упростит хранение информации вместо того, чтобы пытаться использовать переменные класса с многопроцессорной обработкой? – Mrd05d