请问如何用python将字典转换到txt文本中?

字典的类型如下dic={'11542':{'68784':5.0,'43485':5.0,'83646':5.0,'109754':5.0,'119735':3.0,'4... 字典的类型如下
dic={'11542': {'68784': 5.0, '43485': 5.0, '83646': 5.0, '109754': 5.0, '119735': 3.0, '42640': 2.0, '69983': 5.0, '119736': 5.0}}
希望出来的结果是
11542 68784 5.0
11542 43485 5.0
……
请高手赐教
展开
 我来答
依然特雷西sky
高粉答主

2020-04-14 · 繁杂信息太多,你要学会辨别
知道答主
回答量:1511
采纳率:33%
帮助的人:69万
展开全部

1、首先打开python的一个文件。

2、首先是定义一个字典,用{}括起来,在里面使用key:value的形式存储数据,再将这个字典赋值给变量zidian。

3、接着是获取字典的某一个值,比如获得小明的成绩,我们可以这样写:zidian["小明"]。

4、也可以修改字典里面的值,格式:字典的名称[key值]=新值。

5、如果我们想要删除字典中的某一个元素,可以使用pop函数来说实现。

6、使用print将这个字典打印出来。

7、最后运行这个程序,我们就可以看到字典的内容了,发现字典中的第一个元素已经被删除了。

albumin
推荐于2017-11-26 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2381万
展开全部
from __future__ import print_function
dic={'11542': {'68784': 5.0, '43485': 5.0, '83646': 5.0, '109754': 5.0, '119735': 3.0, '42640': 2.0, '69983': 5.0, '119736': 5.0}}
dicfile=open('dic.txt','w')
for key in dic:
    for innerkey in dic[key]:
        print('{0:<10}{1:<10}{2}'.format(key,innerkey,dic[key][innerkey]),file=dicfile)
dicfile.close()

字典是无序的,因此输出的顺序不确定,如果要有序输出只能按大小排序后输出

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柒涩琴
2014-04-05 · TA获得超过728个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:132万
展开全部
>>> dic={'11542': {'68784': 5.0, '43485': 5.0, '83646': 5.0, '109754': 5.0, '119735': 3.0, '42640': 2.0, '69983': 5.0, '119736': 5.0}}
>>> {print(d, k, v) for d in dic for (k, v) in sorted(dic[d].items())}
11542 109754 5.0
11542 119735 3.0
11542 119736 5.0
11542 42640 2.0
11542 43485 5.0
11542 68784 5.0
11542 69983 5.0
11542 83646 5.0
{None}

写入文件的话,可以这样:
file = open(path, 'w') #dir是对应的路径
dic={'11542': {'68784': 5.0, '43485': 5.0, '83646': 5.0, '109754': 5.0, '119735': 3.0, '42640': 2.0, '69983': 5.0, '119736': 5.0}}
{file.write(d, k, v) for d in dic for (k, v) in sorted(dic[d].items())}
追问
我的是2.73版本的python,在eclipse中进行调试。写入文件调试出现问题,出错如下TypeError: function takes exactly 1 argument (3 given)。
追答
抱歉才看到,因为没用文件测试我忘了write一次只能写一个- -

file.write(d, k, v) -> file.write(' '.join([d, k, v]))就行了,不过反正问题解决了...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jys035
2014-04-05
知道答主
回答量:15
采纳率:0%
帮助的人:8.4万
展开全部
# coding=utf-8
def Trans(dic):
rt=[]
try:
fp = open("dict.txt",'w')
for (k,v) in dic.items():
for (ik,iv) in v.items():
fp.write('%-10s,%-10s,%-10s\n' %(k,ik,iv))
return rt
finally:
fp.close()
if __name__=="__main__":
dic={'11542': {'68784': 5.0, '43485': 5.0, '83646': 5.0, '109754': 5.0, '119735': 3.0, '42640': 2.0, '69983': 5.0, '119736': 5.0}}
rt=Trans(dic)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yycgis
2014-04-05 · TA获得超过8267个赞
知道大有可为答主
回答量:6831
采纳率:63%
帮助的人:1588万
展开全部
楼上的是正解啊?莫非你还有什么特殊的需求?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式