I have tried implementing a hashtable from scratch by reading in a csv file. The data itself reads correctly, and the key reads in correctly as well. The values are reading in as memory locations and I can't figure out why. Other posts have suggested that you need to implement a self or str, but unless I'm misunderstanding I believe I've done that here? Any help would be appreciated.
class DeliveryInfo:
def __init__(self, idc, address, city, state, zipc, delivery, size, note):
    self.idc = idc
    self.address = address
    self.city = city
    self.state = state
    self.zipc = zipc
    self.delivery = delivery
    self.size = size
    self.note = note
def __str__(self):
    return "%s,%s,%s,%s,%s,%s,%s,%s" % (self.idc, self.address, self.city, self.state,
                                        self.zip, self.delivery, self.size, self.note)
def loadDeliveryInfo(fileName):
    with open(fileName,'r', encoding="utf-8-sig") as PackageInfo:
        PackageData = csv.reader(PackageInfo, delimiter=',')
    for d_Info in PackageData:
        dID = int(d_Info[0])
        dAddress = d_Info[1]
        dCity = d_Info[2]
        dState = d_Info[3]
        dZip = d_Info[4]
        dDelivery = d_Info[5]
        dSize = d_Info[6]
        dNote = d_Info[7]
        d_Info = DeliveryInfo(dID, dAddress, dCity, dState, dZip, dDelivery, dSize, dNote)
        hashMap.insert(dID, d_Info)
hashMap = chainedHashTable()
loadDeliveryInfo('PackageData.csv')
print(hashMap.table)