回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在处理一个小样本python文件。我有一个csv文件需要转换成pickle。这是我目前掌握的密码。在</p>
<pre><code>import csv
import pickle
class primaryDetails:
def __init__(self, name, age, gender, contactDetails):
self.name = name
self.age = age
self.gender = gender
self.contactDetails = contactDetails
def __str__(self):
return "{} {} {} {}".format(self.name, self.age, self.gender, self.contactDetails)
def __iter__(self):
return iter([self.name, self.age, self.gender, self.contactDetails])
class contactDetails:
def __init__(self, cellNum, phNum, Location):
self.cellNum = cellNum
self.phNum = phNum
self.Location = Location
def __str__(self):
return "{} {} {}".format(self.cellNum, self.phNum, self.Location)
def __iter__(self):
return iter([self.cellNum, self.phNum, self.Location])
a_list = []
with open("t_file.csv", "r") as f:
reader = csv.reader(f)
for row in reader:
a = contactDetails(row[3], row[4], row[5])
a_list.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(primaryDetails(row[0], row[1], row[2] , a))
file = open('writepkl.pkl', 'wb')
# pickle.dump(a_list[0], primaryDetails)
pickle.dump(primaryDetails, a_list[0])
file.close()
</code></pre>
<p><strong>csv文件</strong></p>
^{pr2}$
<p>当我阅读文件并将其放入一个列表中时,我无法对列表进行pickle处理。我还试图用<code>a_list[0]</code>而不是列表来对其进行pickle,结果显示错误<strong>泡菜。倾倒(primaryDetails,a_列表[0])
TypeError:文件必须具有“write”属性</strong>。我需要将数据放入一个列表中,并对其进行pickle以便将其保存到db<a href="http://docs.sqlalchemy.org/en/latest/orm/events.html?highlight=pickle#sqlalchemy.orm.events.InstanceEvents.pickle" rel="nofollow noreferrer">as mentioned here</a>。有人能帮我找出我做错了什么吗。在</p>