使用键作为标题的字典列表和行是任何数据类型的值



**我目前的任务是从字典列表中创建一个CSV文件,其中头是字典键,行是字典值,但值应该是任何数据类型。**

store_value = [{'Key': 649.0, 'Folder': '/ANZ/', 'End Date': 44907.0, 'Depends On': '', 'Start Date Constraint': '', 'Description': '', 'Resolution / Update': '', 'Comments': 'Comment', 'Staging Link': 'https://', 'Retailer URL': '', 'Item Number': ''}, {'Key': 651.0, 'Folder': '/ANZ/', 'End Date': 44917.0, 'Depends On': '', 'Start Date Constraint': '', 'Description': ' https:', 'Resolution / Update': '', 'Comments': 'Approved', 'Staging Link': '', 'Retailer URL': '', 'Item Number': ''}]
f = open("test.csv", "a")
f.write(','.join(list(store_value[0].keys())))  # write headers
f.write('n')
for i in store_value:
print(type(i))
f.write(','.join(list(i.values())))  # write values
f.write('n')
f.close()

TypeError: sequence item 0: expected str instance, float found

不能join()float或int。

改变这一行:

f.write(','.join(list(i.values())))

……

f.write(','.join(map(str, i.values())))

话虽如此,您的整个程序可以简化如下:

import csv
store_value = [
{'Key': 649.0, 'Folder': '/ANZ/', 'End Date': 44907.0, 'Depends On': '', 'Start Date Constraint': '', 'Description': '', 'Resolution / Update': '', 'Comments': 'Comment', 'Staging Link': 'https://', 'Retailer URL': '', 'Item Number': ''},
{'Key': 651.0, 'Folder': '/ANZ/', 'End Date': 44917.0, 'Depends On': '', 'Start Date Constraint': '', 'Description': ' https:', 'Resolution / Update': '', 'Comments': 'Approved', 'Staging Link': '', 'Retailer URL': '', 'Item Number': ''}
]
with open('test.csv', 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=store_value[0])
writer.writeheader()
writer.writerows(store_value)

你得到这个错误

TypeError: sequence item 0: expected str instance, float found

因为.join()方法只对字符串有效。要解决这个问题,可以使用map(str, list(i.values()))

将int转换为str。
Your final code should be:
store_value = [{'Key': 649.0, 'Folder': '/ANZ/', 'End Date': 44907.0, 'Depends On': '', 'Start Date Constraint': '', 'Description': '', 'Resolution / Update': '', 'Comments': 'Comment', 'Staging Link': 'https://', 'Retailer URL': '', 'Item Number': ''}, {'Key': 651.0, 'Folder': '/ANZ/', 'End Date': 44917.0, 'Depends On': '', 'Start Date Constraint': '', 'Description': ' https:', 'Resolution / Update': '', 'Comments': 'Approved', 'Staging Link': '', 'Retailer URL': '', 'Item Number': ''}]
f = open("test.csv", "a")
f.write(','.join(list(store_value[0].keys())))  # write headers
f.write('n')

for i in store_value:
print(type(i))
f.write(','.join(map(str, list(i.values()))))  # write values
f.write('n')

f.close()

相关内容

  • 没有找到相关文章

最新更新