将3个python字典写入csv
我有3本字典(其中2本是带有多个值的setdefault DICT)-将3个python字典写入csv,python,python-3.x,csv,Python,Python 3.x,Csv,我有3本字典(其中2本是带有多个值的setdefault DICT)- 记分- {'Id_1': [('100001124156327', 0.0),
记分-
{'Id_1': [('100001124156327', 0.0),
('100003643614411',0.0)],
'Id_2': [('100000435456546',5.7),
('100000234354556',3.5)]}
后记-
{'Id_1':[(+,100004536)],
'Id_2' :[(-,100035430)]}
评论-
{'Id_1':[(+,1023434234)],
'Id_2':[(-,10343534534)
(*,1097963644)]}
我目前的方法是将它们写入3个不同的csv文件,然后合并它们,我想根据公共第一行(ID_行)合并它们。
但是我不知道如何将3个csv文件合并成一个csv文件。还有,有没有什么方法可以让我把所有3本字典都写进一个csv,而不用单独写
所需输出-
Ids Score_Ids Post_Ids Comment_Ids
Id_1 100001124156327',0.0 +,100004536 +,1023434234
100003643614411',0.0
Id_2 100000435456546',5.7 -,100035430 -,10343534534
100000234354556',3.5 *,1097963644
如何使用最佳方法以正确的方式执行此操作?您可以先将它们全部合并,然后将它们写入csv文件:
import pprint
scores = {
'Id_1': [
('100001124156327', 0.0),
('100003643614411',0.0)],
'Id_2': [
('100000435456546',5.7),
('100000234354556',3.5)
]
}
post_dict = {
'Id_1':[
('+',100004536)
],
'Id_2' :[
('-',100035430)
]
}
comment_dict = {
'Id_1':[
('+',1023434234)
],
'Id_2':[
('-',10343534534),
('*',1097963644)
]
}
merged = {
key: {
"Score_Ids": value,
"Post_Ids": post_dict[key],
"Comment_Ids": comment_dict[key]
}
for key, value
in scores.iteritems()
}
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(merged)
参考:您可以先将它们全部合并,然后将它们写入csv文件:
import pprint
scores = {
'Id_1': [
('100001124156327', 0.0),
('100003643614411',0.0)],
'Id_2': [
('100000435456546',5.7),
('100000234354556',3.5)
]
}
post_dict = {
'Id_1':[
('+',100004536)
],
'Id_2' :[
('-',100035430)
]
}
comment_dict = {
'Id_1':[
('+',1023434234)
],
'Id_2':[
('-',10343534534),
('*',1097963644)
]
}
merged = {
key: {
"Score_Ids": value,
"Post_Ids": post_dict[key],
"Comment_Ids": comment_dict[key]
}
for key, value
in scores.iteritems()
}
pp = pprint.PrettyPrinter(depth=6)
pp.pprint(merged)
作为参考:我建议您在将三个DICT写入csv文件之前,将其转换为一个DICT列表 范例
rows = [
{"Score_Id": "...", "Post_Id": "...", "Comment_Id": "..."},
{"Score_Id": "...", "Post_Id": "...", "Comment_Id": "..."},
{"Score_Id": "...", "Post_Id": "...", "Comment_Id": "..."},
...
]
然后使用该类写入所有行
由于您的值中有逗号(您确定这是一种良好的行为吗?也许将它们拆分为两个不同的列可能是更好的方法),请小心使用制表符或其他东西作为分隔符我建议您在将三个dict写入csv文件之前,将其转换为一个dict列表 范例
rows = [
{"Score_Id": "...", "Post_Id": "...", "Comment_Id": "..."},
{"Score_Id": "...", "Post_Id": "...", "Comment_Id": "..."},
{"Score_Id": "...", "Post_Id": "...", "Comment_Id": "..."},
...
]
然后使用该类写入所有行
由于您的值中有逗号(您确定这是一种良好的行为吗?也许将它们拆分为两个不同的列可能是一种更好的方法),因此请小心使用制表符或其他东西作为分隔符我建议将这三个都写入同一个文件 您可以通过执行以下操作获得常用键:
common_keys = set(score_dict.keys()+post_dict.keys()+comment_dict.keys())
for key_ in common_keys:
val_score = score_dict.get(key_, some_default_value)
post_score = post_dict.get(key_, some_default_value)
comment_score = comment_dict.get(key_, some_default_value)
# print key and vals to csv as before
我建议将这三个文件都写入同一个文件 您可以通过执行以下操作获得常用键:
common_keys = set(score_dict.keys()+post_dict.keys()+comment_dict.keys())
for key_ in common_keys:
val_score = score_dict.get(key_, some_default_value)
post_score = post_dict.get(key_, some_default_value)
comment_score = comment_dict.get(key_, some_default_value)
# print key and vals to csv as before
好的,我可以从它形成一个单独的字典,现在将写入csv将与写入任何其他字典一样,这也是最好的方法,因为我是新来的,我以前没有任何使用itI的经验。我建议首先在python中获得正确的数据,例如通过合并,是一种比在csv文件中进行调整更好的方法。YMMV。你能告诉我怎么把它写进csv吗?我用了这个后就得到了一本字典。我需要csv。也许我会稍微切入重点;我不会为你写所有的代码。你可能已经有了一种编写csv文件的方法,所以你所需要做的就是以这里的格式获取数据,并将其转换为你需要的格式好的,我可以用它形成一个单独的字典,现在,向csv文件的编写将与编写任何其他字典一样,另外,这是最好的方法吗?因为我对这一点还不熟悉,而且我以前没有任何itI经验。我建议先在python中获得正确的数据,例如通过合并,这是比在csv文件中调整数据更好的方法。YMMV。你能告诉我怎么把它写进csv吗?我用了这个后就得到了一本字典。我需要csv。也许我会稍微切入重点;我不会为你写所有的代码。你可能已经有了一种编写csv文件的方法,所以你所需要做的就是以这里的格式获取数据,并将其转换为你需要的格式。是的,我不确定正确的方法是什么,因为我对这一点还不熟悉,并且仍在发展我对它的思考,任何关于如何解决此类问题的线索都将受到赞赏。是的,我不确定什么是正确的方法,因为我对这一点还不熟悉,并且还在发展我的思维,任何关于如何解决这类问题的线索都会被欣赏好的,我得到了关键,现在如何进一步,比如如何在其中写入更多的值,然后到csvOkay,我得到了关键,现在,如何进一步处理,比如如何在其中写入更多值,然后写入csv