Strings są używane do wysyłania/komunikacji danych przez sieć, ale gdy ten ciąg jest odbierany przez program, musi zostać przekonwertowany na typ danych, który obsługuje szybsze manipulacje. W Python istnieją słowniki, które pozwalają użytkownikowi przechowywać dane w postaci par lub wartości pary kluczowej. Są one bardzo podobne do JSON, aw tym poście nauczysz się, jak przekonwertować ciąg Python w słownik.
Treść tego przewodnika jest następujący:
Od razu zacznijmy od pierwszej metody.
Metoda 1: Korzystanie z JSON.Metoda loads () do konwersji ciągów na DICT
Metoda Loads () służy do „załadowania” ciągu JSON i konwersji go na JSON lub w Pythonie, słownik. Jednak, aby ta metoda działała, ciąg musi znajdować się w konkretnym formacie, w którym każdy „klucz” jest zamknięty przez znaki cytatowe, oddzielone dwukropkiem od „wartości”. A każda para jest oddzielona przecinkiem.
Aby zademonstrować działanie metody obciążenia () do konwersji ciągu do oszustów, użyj następującego fragmentu kodu:
Importuj JSON
StringVar = '„Nazwa”: „John Doe”, „Age”: „20”, „Okupacja”: „Doctor”'
ResultVar = JSON.ładunki (StringVar)
print („początkowe ciąg:”, stringVar)
Drukuj („po konwersji:”, wynik)
drukuj („Typ po konwersji:”, Type (ResultVar))
W tym kodowym fragmencie:
Po wykonaniu tego kodu daje następujący wynik na terminalu:
W tym wyjściu możesz łatwo zauważyć, że ciąg został pomyślnie przekonwertowany na typ danych DICT w Pythonie.
Metoda 2: Korzystanie z AST.metoda literal_eval () do konwersji łańcucha na DICT
Metodę literal_eval () z pakietu „AST” można również użyć do wykonania dokładnie tego samego zadania, co metoda Loads () z pakietu „JSON”. Aby użyć tej metody, spójrz na następujący kod:
Importuj AST
StringVar = '„Nazwa”: „John Doe”, „Age”: 20, „Okupacja”: „Doctor”, „Wynagrodzenie”: 40000' '
ResultVar = ast.literal_eval (StringVar)
print („początkowe ciąg:”, stringVar)
Drukuj („po konwersji:”, wynik)
drukuj („Typ po konwersji:”, Type (ResultVar))
Po wykonaniu tego kodu wytworzy on następujący wynik na terminalu:
Wyjście weryfikuje, że ciąg został pomyślnie przekonwertowany na dykt Python.
Metoda 3: Za pomocą metody eval () do konwersji ciągów na DICT
Inną bardzo podobną metodą jest metoda eval (. Aby zobaczyć, jak działa, weź następujący przykład kodu:
StringVar = '„Nazwa”: „John Doe”, „Age”: 20, „Okupacja”: „Doctor”, „Wynagrodzenie”: 40000' '
resultVar = eval (StringVar)
Drukuj („Za pomocą metody eval ()”)
print („początkowe ciąg:”, stringVar)
Drukuj („po konwersji:”, wynik)
drukuj („Typ po konwersji:”, Type (ResultVar))
Po wykonaniu tego kodu wytworzy on następujące dane wyjściowe na terminalu:
Z powodzeniem przekonwertowałeś ciąg Python w Python Dict za pomocą metody eval ().
Metoda 4: Używanie strip () i split () w wyrażeniach generatora
Załóżmy, że ciąg nie ma w formacie strun JSON i nadal chcesz go przekonwertować w dykt Python. W tym celu będziesz musiał użyć różnych metod manipulacji strunami, takimi jak Strip () i split (). Załóżmy na przykład, że ciąg zawiera pary wartości kluczy, w których klucz i wartość są oddzielone łącznikiem „-”, A każda para jest oddzielona przecinkiem. Na przykład jest to ciąg, który ma zostać przekonwertowany:
Stringvar = "Nazwa - John Doe, wiek - 20, zawód - Doktor, Martial_status - Single"
Aby to zrobić, użytkownik może skorzystać z wyrażenia generatora, spójrz na następujący kod:
Stringvar = "Nazwa - John Doe, wiek - 20, zawód - Doktor, Martial_status - Single"
resultVar = DICT (a.pasek (), b.rozebrać się())
dla a, b in (sekcja.podział("-")
dla sekcji w StringVar.podział(",")))
print („początkowe ciąg:”, stringVar)
Drukuj („AfterConversion:”, wynik)
drukuj („Typ po konwersji:”, Type (ResultVar))
Aby zrozumieć ten kod, zacznij od najbardziej wewnętrznej pętli:
Po wykonaniu tego kodu tworzy następujące dane wyjściowe:
Można łatwo zaobserwować, że sznur został przekształcony w dykt Python.
Wniosek
Aby przekonwertować ciąg na „DICT” Python, użytkownik może użyć metody Loads () z pakietu „JSON” lub metody literal_eval () z pakietu „AST”. Jednak, aby użyć tych dwóch metod, ciąg powinien być ciąg JSON. Poza tym, jeśli ciąg jest w innym formacie, użytkownik będzie musiał użyć kombinacji różnych metod manipulacji ciągami, aby wymyślić wyrażenie generatora roboczego.