我使用csv库来创建一个产品表。为了将其导入到站点,我需要将每个特性写在一个单独的列中。
添加新行是使用简单循环完成的:
writer = csv.writer(csvfile)
for product in products:
writer.writerow((product['price'],
product['vendor_code'],
product['characteristics']))添加一个新的product
product = []
product.append({
'price' : price,
'vendor_code' : vendor_code,
'characteristics' : characteristics,
})characteristics -数组,将每个特征作为单独的元素包含
如何以以下形式获得输出文件:
190$ #0172 characteristic1 characteristic2 characteristic3characteristics -初始化:
try:
characteristics = []
soup_characteristics = soup.find_all('tr', {'class' : 'product_card__product_characters_item clearfix'})
for ch in soup_characteristics:
characteristics.append(re.sub('\s\s+|\n',' ', ch.text))
except AttributeError:
characteristics = ""发布于 2018-06-05 15:54:27
尝试解压缩特征数组:
for product in products:
writer.writerow((product['price'],
product['vendor_code'],
*product['characteristics']))下面是我测试的代码:
products = [{
'price': 100,
'vendor': 123,
'characters': [7, 8, 9],
}]
with open('test.csv', 'w') as fo:
writer = csv.writer(fo)
for p in products:
writer.writerow((
p['price'],
p['vendor'],
*p['characters'],
))下面是test.csv文件的内容:
100,123,7,8,9发布于 2018-06-05 16:03:29
您应该能够构建一个列表,以便将其写入整个行:
for product in products:
row = [product['price'],product['vendor_code']] # [price,vendor_code]
row.extend(product['characteristics']) # [price,vendor_code,characteristic1,characteristic2,...]
writer.writerow(row) # writes each value in the list as a new columnhttps://stackoverflow.com/questions/50704236
复制相似问题