我有个小问题。我试图创建一个包含两列(ID和Coordinates)的csv,其中Coordinates列实际上是4个坐标的列表。这是我的密码:
North = 42.02
South = 32.40
West = -124.453125
East = -114.0985107421875
difference = (North-South)
divided = 10
splitsize = difference/divided
coordinates = []
ID = []
count = 0
while count < 10:
coordinates.append([West, South+(splitsize*(count+1)), East, South+(splitsize*(count))])
ID.append(count+1)
count += 1
现在我想把两个列表放在一个列表中,所以当我导出它时,我有一个带有两列的CSV。第一个是ID,第二个是坐标。你知道吗
1,[-124.453125, 33.362, -114.0985107421875, 32.4]
2,[-124.453125, 34.324, -114.0985107421875, 33.362]
我一直这样做,我把所有的东西都放在一行,ID和坐标都放在一个单元格里。你知道吗
编辑 只是想弄清楚我在找什么: end result
EDIT2:解决方案 这就是我从Writing Python lists to columns in csv开始所做的
with open('test.csv', 'wb') as f:
writer = csv.writer(f)
rows = zip(ID, coordinates)
for row in rows:
writer.writerow(row)
方括号不是csv语法的一部分,因此将作为
如果您控制这个csv的使用者,最简单的解决方案是只导出五个值并让使用者处理这些列。 如果需要层次结构,JSON可能是更好的选择。你知道吗
如果您的消费者希望列表作为第二列,而无法处理JSON(???)然后你会想出口
然后希望消费者做一个
eval
或者类似的事情,把它变成一个列表。请注意,这是一个非常糟糕的想法,因为eval
以用户的权限执行任意代码,所以任何简单的实现(以及最聪明的实现)都是很好的攻击向量。你知道吗我不确定这是否适合您的情况,但是csv在默认情况下会返回类似的内容,因为它是一个逗号分隔的文件。尝试在Excel中打开文档并执行以下操作:
1)选择数据列
2)在“数据”下的“数据工具”中,选择“文本到列”
3)在打开的框中,选择“取消计量”单选按钮,然后单击“下一步”
4)选中“逗号”框并点击finish。你知道吗
如果您的数据现在在两列中,那么您看到的只是因为它是一个csv文件。你知道吗
相关问题 更多 >
编程相关推荐