我在2d数组(数据)中循环,然后使用循环的数组的不同片段填充字段。下面是示例代码:
with open('output.csv' , 'wb') as outcsv:
headers = ['Field1', 'Field2', 'LongField']
writer = csv.DictWriter(outcsv, headers)
writer.writeheader()
for i in range(numArrays):
row = [{'Field1': data[i][:3],
'Field2': data[i][3:5],
'LongField': data[i][5:]}]
writer.writerows(row)
我得到了除“LongField”之外的所有字段的期望输出,其中值的数量很大(数百个,甚至可能几千个),并且变化很大。 以下是我的输出结果:
^{pr2}$这是因为我超过了我可以写入单元格的最大允许值吗?有没有办法让我把所有的实际值都写进单元格?在
任何帮助将不胜感激!在
我怀疑OP想打印所有的0,不管有多少。没有
array(
也没有)
也没有省略号...
编辑: 参见@John的评论:
猜测:
尝试
','.join([str(_) for _ in data[i][5:]])
全部:
Related to this answer.
帮助我们:
你用的是什么阵法?你能给我们看更多的代码吗?或告诉输出:
type(data[0])
编辑
OP澄清了什么样的阵列以及它的长度:
这是一个
numpy.array
(或ndarray
;相同str处理的一维)它有2984长。在
显然,
numpy.array
的str版本将在数组有1000个或更多元素时截断除前3个和最后3个元素之外的所有元素999个元素:
^{pr2}$1000个元素:
所以我认为我最初的建议应该有效,强迫它使用你想要的字符串表示。我认为CSV
DictWriter
应该负责引用。在编辑
解释我的答案:
所以你没有给DictWriter一个字符串,它必须推断字符串。我假设DictWriter将使用Python^{} 函数。如文档所述,
str
函数将:我想
numpy
开发人员认为一个array
包含超过999个元素的array
将不非常“可打印”所以在1000以上,它们可能有
__str__
函数返回一个“summated”版本,它只显示前3个元素和最后3个元素。在不必让DictWriter或
str
给你一个字符串,你可以创建你想要的字符串。我相信您需要的字符串只是数组中所有元素用逗号分隔,这就是代码的作用:','.join()
将所有元素“串联”在逗号上;元素必须是字符串[str(_) for _ in [1,2,3]]
将单个元素转换为字符串(join工作所必需)相关问题 更多 >
编程相关推荐