- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个代码:
#//Running my argument to check if the item in list is in dictionary and returning this + corresponding value in dictionary//#
for key in n:
if DICT.get(key):
print ((key) + ' : ' + DICT[key])
else:
print((key) + ' : ' + "Not Available")
#Writing to .cvs file
with open('test_write.csv', 'w') as fp:
a = csv.writer(fp)
a.writerows(n)
我想将上面 for 循环的结果写入.csv。
目前,我将代码第一部分的每个字母放在单独的列中。
我需要在每一列中都有两个..
我建议我需要将 for 循环转换为字典?但我可能是错的......
关于如何最简单地做到这一点有什么想法吗?
编辑:
使用您的建议:
with open('test_write.csv', 'w') as fp:
a = csv.writer(fp)
for key in n:
if DICT.get(key):
print ((key) + ' : ' + DICT[key])
a.writerow(n)
else:
print((key) + ' : ' + "Not Available")
a.writerow(DICT.get(n,"Not Available") for name in n)
我没有得到我所期望的
我得到了我的列表 n 的 4 行。DICT 中没有显示该值。我做错了什么...
最佳答案
writerows
接受一个可迭代列表。尝试使用 writerow。从表面上看,n
是一个字典,因此要获取一行标题和一行值,请执行以下操作:
a.writerow(n.keys())
a.writerow(n.values())
您可以为第一行编写a.writerow(n)
,但我更喜欢更明确地展示这一点。
还有一个添加所有默认值的小快捷方式:
names = ['list','of','all','expected','keys']
data = {'list':'A', 'of':'zoo', 'keys':'foo'}
default = dict.fromkeys(names,"Not Available")
default.update(data)
data = default
留下数据和内容:
{'all': 'Not Available', 'of': 'zoo', 'list': 'A', 'expected': 'Not Available', 'keys': 'foo'}
编辑:
给定 DICT = {1:a, 2:b, 3:c, 4:d} 和列表 n = [1, 2, 5, 6],只需执行以下操作:
a.writerow(n)
a.writerow(DICT.get(name,"Not Available") for name in n)
将在 CSV 文件中打印两行,其中一行包含 n 中的键名称,另一行包含 DICT 中的值,如果特定键不在 DICT 中,则打印“不可用”字样。
编辑2:
你太努力了 - DICT.get 将处理条目是否存在:
with open('test_write.csv', 'w') as fp:
a = csv.writer(fp)
a.writerow(n)
a.writerow(DICT.get(name,"Not Available") for name in n)
这是相同的代码,但形式更详细:
with open('test_write.csv', 'w') as fp:
a = csv.writer(fp)
# write row of header names
a.writerow(n)
# build up a list of the values in DICT corresponding to the keys in n
values = []
for name in n:
if name in DICT:
values.append(DICT[name])
else:
values.append("Not Available")
# or written as a list comprehension:
# values = [DICT[name] if name in DICT else "Not Available" for name in n]
#
# or just use DICT.get, which does the name checking for us, and chooses the
# default value if the key is not found
# values = [DICT.get(name, "Not Available") for name in n]
# now write them out
a.writerow(values)
# or finally, the list build and writerow call all in one line
# a.writerow(DICT.get(name,"Not Available") for name in n)
编辑:
# to write out the transpose of the previous lines (that is, instead of
# a line of names and a line of the matching values, a line for each
# name-value pair), use Python's zip builtin:
for nameValueTuple in zip(n,values):
a.writerow(nameValueTuple)
关于python - 向 .csv 写入多于一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17268851/
我有以下型号:http://slexy.org/view/s20T8yOiKZ from mxutils.cms_services import generate_secid from django.
我遇到了一个问题..当我用我的程序运行 valgrind 时,我得到了以下输出,这让我很困惑: ==12919== HEAP SUMMARY: ==12919== in use at exit
我有一张产品销售表。每笔销售都有一个项目代码(例如序列号)和一个日期。 item_code | date a | 2013-01-01 a | 2013-01-18 b | 3013-02-10 c
是否可以定义一个不限于 1 个字符的分隔符?基于标题的示例,我想将我的分隔符定义为例如'#+#'。文本文件/行可以包含这两个字符,但您遇到特定子字符串/文本组合的可能性很小。 最佳答案 不可以,您不能
Produce a PDA to recognise the following language : the language of strings containing more a's than
我想做一个程序,想像这样生成一个 process -> n process -> n process 第二级可以使用多处理生成进程吗?使用 python 2.6 的 multiprocessinf 模
我对使用 CNN 进行图像识别非常陌生,目前使用 Keras(VGG 和 ResNet)中提供的几种标准(预训练)架构来执行图像分类任务。我想知道如何将输入 channel 的数量概括为 3 个以上(
我有一个 html 文档,当 URL 长度小于 30 个字符时,我想隐藏其中的一些 id(在本例中为 id="test")。 var test = document.getElementById('t
我有一个以 Qtreewidget(有 3 列)作为中央小部件的主窗口。我想保持第一列和第二列的大小固定,但第二列的大小应等于 qtreewidget 的大小减去其他两列的大小。既然主窗口(也就是树形
我的问题类似于this一。我想知道是否存在一个 PDA,它以随机顺序接受包含 a、b 和 c 的任何单词,其中 a 的总量高于 b 的总量并高于 c 的总量,例如单词“abcacba”将被接受。 最佳
我正在尝试使用准备好的 PDO 语句执行 while 循环,但我只希望它在有任何行时执行。目前我正在使用它,但它似乎缺少第一个结果,大概是因为它移动了指针。 正确的做法是什么? $stmt = $pd
1.实体(表)CurrentyEnitiy.java @Entity(tableName = "Corona") public class CurrentyEntity { @PrimaryKey(a
我是一名优秀的程序员,十分优秀!