【发布时间】:2018-09-18 10:34:40
【问题描述】:
我已经围绕堆栈溢出进行了分析以找到答案,但感觉有点具体,如果您建议它们,很高兴访问您的链接。
A.我有一本字典,里面有一堆这种格式的字典:
Key : {Nested_Key: Nested_Value}
Key = Document ID, Data Type is String
Nested Key = Token ID, Data Type is Integer
Nested Value = Count of Token ID, Data Type is Integer
例子:
d = { '441' : {201:1, 220:1, 232:1, ..., 23231:4},
'4452' : {203:43, 2202: 45} }
B:我希望能够以这种格式将它们输出到文本文件中:
document_(key), nested_key:nested value, nested_key:nested value \n
document_(key+1), nested_key:nested value, nested_key: nested value \n
使用此代码,我能够非常接近我想要的:
with open("text.txt", "w") as f:
for key, token in dict.items():
f.write('doc%s,%s\n' % (key, token))
但正如您所期望的那样,它会在其字典中输出嵌套键和嵌套值
doc_441,{201: 1, 220: 1, 232: 1, 240: 1, 241: 1, 242: 1, 243: 1, 245: 1、246:1、250:1、255:1、260:1、271:1、493:1、494:1、540:1、 608:1、609:1、610:1、611:1、612:1、613:1、614:1、835:1、836: 1、965:1、966:1、967:1、986:1、1291:1、1292:1、1734:1、1735:1、 1736:1、1748:1、1749:1、1762:1、1763:1、1818:1、1819:1、1820: 1、1821:1、1822:1、1875:1、1881:1、1882:1、1883:1、1890:1、 1891:1、1941:1、1947:1、1948:1}
doc_577,{201: 1, 205: 1, 217: 1, 232: 1, 233: 1, 235: 1, 236: 1, 237: 1、238:1、241:1、242:1、243:1、244:1、245:1、246:1、247:1、 248:1、249:1、250:1、251:1、280:1、448:1、493:1、494:1、537: 1、540:1、571:1、572:1、573:1、574:1、575:1、669:1、670:1、 671:1、672:1、673:1、674:1、675:1、690:1、731:1、732:1、733: 1、734:1、735:1、736:1、770:1、771:1、772:1、773:1、777:1、 947:1、948:1、949:1、950:1}
我尝试了一些非常复杂的代码来尝试将代码哄骗成我想要的,但这个只输出嵌套字典的嵌套键中的最后一行:嵌套令牌
combined_file_content = ""
# For Key, Token pair in dict
for key, token in dict.items():
for nest_key, nest_token in iter(token.items()):
file_content = ""
# This side works
int_id = ""
# Set int_id = doc_(key).txt,
int_id = "doc_" + '(' + key + ')' + '.txt' + ','
# Then for token dictionary,
# For nested key, nested token pair in token dictionary
# Set int_value = key:value
int_value = ""
nested_key = nest_key
nested_token = nest_token
int_value += (str(nested_key) + ":" + str(nested_token))
#print(str(nested_key) + ":" + str(nested_token))
combined_nest = int_id + int_value + "\n"
file_content += combined_nest
combined_file_content += file_content
输出:docresume_(441).txt,4334:1\nresume_(577).txt,4344:1\ndoc_(220).txt,4305:1\n
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
你试过 pprint 吗?
-
最后一堆代码在使用 python print 函数时有效,但我试图将它们输出到文件中,除非可以使用 print 来做到这一点?我不知道。
-
那么对于一个document_key,您想在一行中打印所有嵌套的键、值吗?
-
如果函数打印输出的方式是您想要的,您可以通过如下运行将输出定向到文件:
python yourcode.py > yourfile.txt -
是的,特别是我想将它们从我的嵌套字典结构输出到以下格式的文本文件:document_key1、nested_key:nested_value、nested_key:nested_value\n document_key2、nested_key:nested_value、nested_key:nested_value \n
标签: python file dictionary nested output