Hướng dẫn python extract data from formatted string - python trích xuất dữ liệu từ chuỗi được định dạng

Tôi có một bộ chuỗi như thế này:

C001F01.PNG

C001G01.PNG

C002F10.PNG

theo định dạng của:

C (số id) (f hoặc g) (số ID khác) .png

Tôi muốn biết ID của họ 'và biết họ đến từ lớp F hay G, tôi đã đọc rằng

s = "123STRINGabcabc"

def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""



print find_between( s, "123", "abc" )
6 có thể làm công việc tương tự, nhưng tôi bối rối và không hiểu cách thức hoạt động chính xác.

Hướng dẫn python extract data from formatted string - python trích xuất dữ liệu từ chuỗi được định dạng

Hỏi ngày 25 tháng 7 năm 2017 lúc 10:38Jul 25, 2017 at 10:38

2

Bạn chắc chắn nên đọc thêm về Regex. Một gợi ý đầu tiên là khi bạn muốn chụp một mẫu, bạn cần đặt nó trong ngoặc đơn. ví dụ. (\ d+). Đối với ví dụ này, mã bạn cần là:

match = re.match(r'C(\d+)([F|G])(\d+)\.PNG', s)

first_id = match.group(1)
fg_class = match.group(2)
second_id = match.group(3)

Đã trả lời ngày 25 tháng 7 năm 2017 lúc 10:50Jul 25, 2017 at 10:50

DVitsiosDvitsiosdvitsios

4482 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges

1

s = "123STRINGabcabc"

def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""



print find_between( s, "123", "abc" )

Hướng dẫn python extract data from formatted string - python trích xuất dữ liệu từ chuỗi được định dạng

Đã trả lời ngày 25 tháng 7 năm 2017 lúc 10:52Jul 25, 2017 at 10:52

Hướng dẫn python extract data from formatted string - python trích xuất dữ liệu từ chuỗi được định dạng

1


Introduction...

Tôi sẽ chỉ cho bạn một vài phương pháp để trích xuất yêu cầu dữ liệu/trường từ các chuỗi có cấu trúc. Các phương pháp này sẽ giúp, trong đó định dạng của cấu trúc đầu vào ở định dạng đã biết.

Làm thế nào để làm nó..

1. Hãy để chúng tôi tạo một định dạng giả để hiểu cách tiếp cận.

Report: <> - Time: <> - Player: <> - Titles: - Country: <>

Báo cáo: Daily_Report - Thời gian: 2020-10-16T01: 01: 01.000001 - Người chơi: Federer - Tiêu đề: 20 - Quốc gia: Thụy Sĩ

report = 'Report: Daily_Report - Time: 2020-10-10T12:30:59.000000 - Player: Federer - Titles: 20 - Country: Switzerland'

2. Điều đầu tiên tôi nhận thấy từ báo cáo là người tách rời là "-". Chúng tôi sẽ tiếp tục và phân tích lại báo cáo với "-"

fields = report.split(' - ')
name, time, player , titles, _ = fields

print(f"Output 
*** The report name {name} generated on {time} has {titles} titles for {player}. ")

Đầu ra

*** The report name Report: Daily_Report generated on Time: 2020-10-10T12:30:59.000000 has Titles: 20 titles for Player: Federer.

3. Bây giờ đầu ra không được mong đợi như chúng ta có thể thấy một số nhãn như Báo cáo :, Time :, Người chơi: Không cần thiết.

# extract only report name
formatted_name = name.split(':')[1]

# extract only player
formatted_player = player.split(':')[1]

# extract only titles
formatted_titles = int(titles.split(':')[1])

# extract only titles
new_time = time.split(': ')[1]

print(f"Output 
{formatted_name} , {new_time}, {formatted_player} , {formatted_titles}")

Đầu ra

Daily_Report , 2020-10-10T12:30:59.000000, Federer , 20

3. Bây giờ đầu ra không được mong đợi như chúng ta có thể thấy một số nhãn như Báo cáo :, Time :, Người chơi: Không cần thiết.

from datetime import datetime
formatted_date = datetime.fromisoformat(new_time)

print(f"Output 
{formatted_date}")

Đầu ra

2020-10-10 12:30:59
  • 3. Bây giờ đầu ra không được mong đợi như chúng ta có thể thấy một số nhãn như Báo cáo :, Time :, Người chơi: Không cần thiết.

s = "123STRINGabcabc"

def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""



print find_between( s, "123", "abc" )
0

Đầu ra

Daily_Report , 2020-10-10T12:30:59.000000, Federer , 20

3. Bây giờ đầu ra không được mong đợi như chúng ta có thể thấy một số nhãn như Báo cáo :, Time :, Người chơi: Không cần thiết.

4. Bây giờ dấu thời gian ở định dạng ISO, có thể được chia nếu bạn muốn hoặc để nó như hiện tại. Hãy để tôi chỉ cho bạn cách bạn có thể chia một trường dấu thời gian.

s = "123STRINGabcabc"

def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""



print find_between( s, "123", "abc" )
2

Đầu ra

s = "123STRINGabcabc"

def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""



print find_between( s, "123", "abc" )
3

3. Bây giờ đầu ra không được mong đợi như chúng ta có thể thấy một số nhãn như Báo cáo :, Time :, Người chơi: Không cần thiết.

s = "123STRINGabcabc"

def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""



print find_between( s, "123", "abc" )
4

Đầu ra

s = "123STRINGabcabc"

def find_between( s, first, last ):
    try:
        start = s.index( first ) + len( first )
        end = s.index( last, start )
        return s[start:end]
    except ValueError:
        return ""



print find_between( s, "123", "abc" )
5

3. Bây giờ đầu ra không được mong đợi như chúng ta có thể thấy một số nhãn như Báo cáo :, Time :, Người chơi: Không cần thiết.

4. Bây giờ dấu thời gian ở định dạng ISO, có thể được chia nếu bạn muốn hoặc để nó như hiện tại. Hãy để tôi chỉ cho bạn cách bạn có thể chia một trường dấu thời gian.

Hướng dẫn python extract data from formatted string - python trích xuất dữ liệu từ chuỗi được định dạng

Cập nhật vào ngày 10 tháng 11 năm 2020 06:08:49

  • Câu hỏi và câu trả lời liên quan
  • Trích xuất số từ danh sách các chuỗi trong Python
  • Sự khác biệt giữa dữ liệu có cấu trúc, bán cấu trúc và không cấu trúc
  • Làm thế nào để hiển thị dữ liệu có cấu trúc cây trong Java?
  • Làm thế nào để trích xuất dữ liệu Wikipedia trong Python?
  • Python - Trích xuất chuỗi được sắp xếp
  • Làm thế nào để trích xuất dữ liệu từ một chuỗi có biểu thức thông thường Python?
  • Làm thế nào để trích xuất dữ liệu từ một biểu đồ matplotlib?
  • Làm thế nào để trích xuất các chuỗi dựa trên ký tự đầu tiên từ một vectơ chuỗi trong R?
  • Cách trích xuất dữ liệu từ SAP bằng nhà cung cấp .NET.
  • Làm thế nào để trích xuất số từ chuỗi trong khung dữ liệu r?
  • Làm thế nào để trích xuất số từ một chuỗi trong Python?
  • Làm thế nào để trích xuất ngày từ một chuỗi trong Python?
  • Chương trình Python để trích xuất các hàng từ ma trận có các loại dữ liệu riêng biệt
  • Làm thế nào để nội suy các giá trị dữ liệu thành các chuỗi trong Python?
  • Python - Trích xuất các hàng có chuỗi chiều dài chẵn