[英]How to replace the content of a dict in Python using regex
我必須修改一個非常大的JSON文件(36MB),基本上我需要的是刪除整個文件的時間戳。
由於應用程序崩潰后我無法使用 sublime text 或其他 IDE,因此我別無選擇,只能使用 python 手動處理文件。
我想到的過程如下:
這是我的問題:
我需要編輯整個 dict 並將 TXX:XX:XX 替換為 ' ' (空字符)。 JSON 文件必須采用 YYYY-MM-DD 格式。
所以假設我有這個日期: 2021-11-02T00:04:03
替換時間戳后它應該是: 2021-11-02
再舉一個例子:
2021-10-02T01:04:03
應該是2021-10-02
等等。
我知道這個正則表達式T00.{6}
適用於案例 00,但其他案例呢? 01, 02, 03, 04 ...等。是否有適用於所有情況的通用正則表達式?
最重要的是,如何在字典中查找所有值並將時間戳替換為""
。
據我了解,問題是:
####-##-##T##:##:##
,其中 # 是任何數字;如果這是正確的,我們可以這樣做:
def truncate_timestamp(potential_date_str):
pattern = '^([0-9]{4}-[0-9]{2}-[0-9]{2})T[0-9]{2}:[0-9]{2}:[0-9]{2}$'
match = re.search(pattern, potential_date_str)
if match:
return match.group(1)
else:
return potential_date_str
這會產生以下結果:
>>> truncate_timestamp('2021-11-02T00:04:03')
'2021-11-02'
>>> truncate_timestamp('Canned Frozen Orange Juice')
'Canned Frozen Orange Juice'
如果成功匹配,則re.search
返回真值,否則返回假值。 此處模式中給出的pattern
只是透明地編碼了字符串由四位數字組成的事實,后跟一個破折號等,並且具有用於日期部分的捕獲組。 如果我們成功匹配,我們將返回我們捕獲的內容,即日期。 如果不是,這不是時間戳,所以我們不理會它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.