我如何更改存储字典从行到列使用Python的类型
我有一个简单的问题。我正在使用此代码来存储csv文件中的词典词典。我如何更改存储字典从行到列使用Python的类型
data = dataA,dataB, dataC, dataD
w = csv.writer(open("test.csv", "w"))
for x in data:
for field, possible_values in x.items():
print(field, possible_values)
w.writerow([field, possible_values])
我在csv中获得的存储值存储在行中,但我希望它们存储为列。
我的实际结果CSV:
name: Alex
Old: 22
我的CSV目标应该是这样的:
Name Old
Alex 22
我怎样才能改变呢?
UPDATE1:
线索是for key in x.keys()
。经过几个小时的努力,我更新了我的代码,它比以前更好,但我仍然有一个小问题,在存储所有值和关键字x.keys()和y.values() 。我的csv文件dictioanries的
if not os.path.isfile(filename):
outfile = open(filename, "w")
#outfile.write("#Sequence,,,,")
for x in data:
print(x.keys())
for key in x.keys():
print(key)
store_key= key + ","
outfile = open(filename, "a")
outfile.write(store_key)
outfile.close()
for y in data:
print(y.values())
for value in y.values():
print(value)
store_value = value + ","
outfile = open(filename, "a")
outfile.write(store_value)
outfile.close
现在我需要与键和值之间的“\ n”也许单独拿到钥匙的线下的值OD一阳指。
任何帮助不胜感激。
如果您尝试访问和写入文件,这会减慢您的代码。将输出文本保存为一个字符串,删除最后一个逗号(,),并在该字符串的末尾添加换行符。它会加快您的代码,并添加新行。您也可以为回合秒做同样的事情。
line = ""
for x in data:
for key in x.keys():
line += key + ","
line = line[:-1]+"\n" # Delete last character and add new line
outfile = open(filename, "a")
outfile.write(line)
outfile.close()
,因为我需要我不能使用功能在csv文件中存储disionaries的列表yithout []和'' for x in data: outfile = open(filename,“a”) outfile.write(str(x.keys())) outfile.close ) 现在我得到了csv文件中的所有字典的问题,因为我使用str()。 当我不使用str()我得到一个错误,yrite参数必须是str而不是dic_keys – AhmyOhlin
@AmymyOhlin你可以将你的期望结果添加到你的问题中:data = [{“name”:“Alex”,“age”:“22”,“sex”:“male”}, {“name”:“Alice”,“age”:“19”,“sex”:“female”}]' – Alperen
如果你坚持使用第一个代码并使用'w.writerow(x.keys())' @Dustin说,你不必使用'str()'。使用我以前评论的数据。你会看到,它的工作原理。 – Alperen
您可以编写一行字典键,然后写一行值。
for x in data:
w.writerow(x.keys())
w.writerow(x.values())
感谢您的回答。你的小费工作,但我得到了一列中的所有实体。我的目标是,下一个实体应该写在下一列。 名称 亚历 老 ------------ 名老 亚历克斯22 我的目标是: 名老 亚历克斯22 – AhmyOhlin
发布多字典的预期输出 – RomanPerekhrest