2 回答

TA貢獻1815條經(jīng)驗 獲得超6個贊
你快到了,你需要用雙換行符拆分整個文件,然后鍵是該組中的第一行,而 val 是所有其他行。
d = {}
with open("dummy.txt") as f:
for group in f.read().split('\n\n'):
key, *val = group.split('\n')
d[key] = ' '.join(val)
print (d)
結(jié)果:
{'Lorem ipsum dolor sit amet (consectetur adipiscing elit)': '2020-01-05 20:01:02 Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet',
'Lorem ipsum dolor': '2019-01-30 12:21:50 Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem'}

TA貢獻1817條經(jīng)驗 獲得超6個贊
您需要將數(shù)據(jù)(文件流)拆分為\n\n
,然后每個項目都需要拆分為\n
。根據(jù)您的數(shù)據(jù)結(jié)構(gòu),項目中的第一行是鍵,其余行用空格連接
一些指示
明確
為 設(shè)置模式
with open
,即使默認為r
使用
dict()
instead of{}
以避免與 a 混淆set
避免在塊中編寫一堆代碼
with open
。獲取數(shù)據(jù)并關(guān)閉文件流[start=0:stop=end:step=1]
是獲取“列表中的其余項目”的好方法用于
json.dumps
打印帶有數(shù)據(jù)的漂亮消息 (indent
,sort_keys
)
import json
d = dict()
with open("dummy.txt", "r") as f:
data = f.read()
items = data.split("\n\n")
for item in items:
item_lines = item.split("\n")
d[item_lines[0]] = " ".join(item_lines[1:])
print(json.dumps(d, indent=2, sort_keys=True))
輸出
{
"Lorem ipsum dolor": "2019-01-30 12:21:50 Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem",
"Lorem ipsum dolor sit amet (consectetur adipiscing elit)": "2020-01-05 20:01:02 Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet"
}
添加回答
舉報