我有一个小问题。我正在尝试创建一个包含两列(ID和坐标)的csv,其中坐标列实际上是一个包含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)
答案 0 :(得分:0)
我不确定这是否适合您的情况,但默认情况下,csv将返回与此类似的内容,因为它是逗号分隔文件。尝试在Excel中打开文档并执行以下操作:
1)选择数据列
2)在Data,Data Tools下,选择Text to Columns
3)在打开的那个框中,选择&#34; Delimeted&#34;单选按钮,然后下一步
4)检查&#34;逗号&#34;盒子和击中完成。
如果您的数据现在分为两列,那么您所看到的只是因为它是一个csv文件。
答案 1 :(得分:0)
现在我想将两个列表合二为一,所以当我导出它时,我有一个CSV 有两列。第一个是ID,第二个是坐标。
1,[ - 124.453125,33.362,-114.0985107421875,32.4] 2,[ - 124.453125, 34.324,-114.0985107421875,33.362]
方括号不是csv语法的一部分,因此将导入为
"1","[-124.453125", "33.362", "-114.0985107421875", "32.4]"
如果您控制此csv的使用者,最简单的解决方案是只导出五个值并让消费者处理列。 如果你需要一个层次结构,JSON可能是一个更好的选择。
如果您的消费者希望将列表作为第二列并且无法处理JSON(???),那么您希望导出类似
的内容1,"[-124.453125, 33.362, -114.0985107421875, 32.4] 2,[-124.453125,
34.324, -114.0985107421875, 33.362]"
然后希望消费者执行eval
或类似的操作将其转换为列表。请注意,这是一个非常糟糕的主意,因为eval
使用用户的权限执行任意代码,因此任何天真的实现(以及最聪明的实现)都将是很好的攻击向量。
答案 2 :(得分:0)
var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', ');
$(selectors).each(function() {
Rails.enableElement(this);
})