Вы были почти там, это должно сделать это:
d = {'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 d.items():
file_content = ""
int_id = "doc_" + '(' + key + ')' + '.txt' + ','
for nest_key, nest_token in iter(token.items()):
# 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))
file_content += int_value
combined_file_content += int_id + file_content + "\n"
print(combined_file_content)
Вывод
doc_(doc_441).txt,260:11948:11291:11292:1271:11941:11818:11819:1540:11821:11822:11947:11734:11891:11820:11735:11890:1835:1836:1965:1966:1967:11736:1201:11875:11882:1610:1611:11748:11749:11881:1986:11883:1220:1608:1609:11762:11763:1612:1613:1614:1232:1493:1494:1240:1241:1242:1243:1245:1246:1250:1255:1
doc_(doc_577).txt,770:1771:1772:1773:1777:1237:1238:1280:1537:1540:1669:1670:1671:1672:1673:1674:1675:1690:1947:1948:1949:1950:1571:1572:1573:1574:1575:1448:1201:1205:1217:1731:1732:1733:1734:1735:1736:1232:1233:1235:1236:1493:1494:1241:1242:1243:1244:1245:1246:1247:1248:1249:1250:1251:1
В качестве примечания избегайте вызова словарей dict
,Название dict уже определено как функция для создания словарей.Более простой альтернативой приведенному выше коду является следующее:
d = {'doc_441': {201: 1, 220: 1},
'doc_577': {201: 1, 205: 1}}
def get_line(d):
return ",".join('{}:{}'.format(nest_key, nest_token) for nest_key, nest_token in d.items())
# For Key, Token pair in dict
combined_file_content = '\n'.join("doc_({}).txt".format(key) + "," + get_line(token) for key, token in d.items())
print(combined_file_content)
Выход
doc_(doc_441).txt,201:1,220:1
doc_(doc_577).txt,201:1,205:1