第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將文本文件轉(zhuǎn)換為以空行作為唯一分隔符的字典

將文本文件轉(zhuǎn)換為以空行作為唯一分隔符的字典

慕斯王 2023-05-09 16:14:07
您好我正在嘗試將文本文件轉(zhuǎn)換為字典,但我的分隔符是一個空行。因此,我的部分數(shù)據(jù)的示例dummy.txt如下所示:Lorem ipsum dolor sit amet (consectetur adipiscing elit)2020-01-05 20:01:02Lorem ipsum dolor sit ametLorem ipsum dolor sit ametLorem ipsum dolor sit amet Lorem ipsum dolor sit ametLorem ipsum dolor2019-01-30 12:21:50 Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem所以基本上它以一個名稱(有時包括括號)開頭,然后是日期和時間(按照上面的格式),然后是任何附加信息(可以是任意長度,也就是行數(shù),但包含諸如“ /“ 和 ”,”)。最后,它將是一個空行,表示第一組數(shù)據(jù)的結(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'}我試過使用這樣的代碼,因為除了“\n”之外,我想不出任何其他代表空行分隔符的東西,但我知道它是錯誤的,因為它也會影響同一組中的其他數(shù)據(jù)\n:d = {}with open("dummy.txt") as f:    for line in f:        (key, val) = line.split('\n')        d[key] = valprint (d)任何幫助將不勝感激!先感謝您
查看完整描述

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'}



查看完整回答
反對 回復(fù) 2023-05-09
?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

您需要將數(shù)據(jù)(文件流)拆分為\n\n,然后每個項目都需要拆分為\n。根據(jù)您的數(shù)據(jù)結(jié)構(gòu),項目中的第一行是鍵,其余行用空格連接

一些指示

  • 明確

    1. 為 設(shè)置模式with open,即使默認為r

    2. 使用dict()instead of{}以避免與 a 混淆set

  • 避免在塊中編寫一堆代碼with open。獲取數(shù)據(jù)并關(guān)閉文件流

  • [start=0:stop=end:step=1]是獲取“列表中的其余項目”的好方法

  • 用于json.dumps打印帶有數(shù)據(jù)的漂亮消息 ( indentsort_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"

}


查看完整回答
反對 回復(fù) 2023-05-09
  • 2 回答
  • 0 關(guān)注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號