Potrzebuję pomocy z funkcją podziału, aby uzyskać dane wyjściowe, jak poniżej:

„nazwa” ma wartość cDOT_abc_esx_01_test_wi13_03-31-2020_22.20.01.8964

Kod-

(j['name'].split("_wi13_"))

Otrzymuję dane wyjściowe jak poniżej-

'cDOT_abc_esx_01_test', '03-31-2020_22.20.01.8964'

Chcę tylko wyjścia jak poniżej-

'cDOT_abc_esx_01_test', '03-31-2020'

Czy ktoś może pomóc?

0
True Entertainer 1 kwiecień 2020, 11:35

5 odpowiedzi

Najlepsza odpowiedź

Uczenie się wyrażeń regularnych (regex) będzie korzystne w tego rodzaju sytuacjach. Tylko opinia ...

0
Kasinath PS 1 kwiecień 2020, 08:53

To powinno działać:

(string_1.split("_wi13_")[0], string_1.split("_wi13_")[1][0:10])
0
Caleb Mackle 1 kwiecień 2020, 08:42

Możesz najpierw podzielić ciąg za pomocą '_wi13_', tak jak to zrobiłeś, a następnie użyć drugiego elementu listy i podzielić go dalej "_"

name = 'cDOT_abc_esx_01_test_wi13_03-31-2020_22.20.01.8964'

fs = name.split("_wi13_")

fs[1] = fs[1].split("_")[0]

print(fs)

# output
['cDOT_abc_esx_01_test', '03-31-2020']
0
Junkrat 1 kwiecień 2020, 08:49

Możesz spróbować następujących rzeczy:

first, second = j['name'].split("_wi13_")
output = (first, second.split("_")[0])
0
Gabip 1 kwiecień 2020, 08:50

Możesz użyć tego:

import re
reg=re.compile("^(.*?)_wi13_([^_]+)")
rtn_val=reg.findall(s)[0]
0
xkcdjerry 1 kwiecień 2020, 09:27