String Python na dykt

String Python na dykt

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:

  • Metoda 1: Korzystanie z JSON.Metoda loads () do konwersji ciągów na DICT
  • Metoda 2: Korzystanie z AST.metoda literal_eval () do konwersji łańcucha na DICT
  • Metoda 3: Używanie strip () i split () w wyrażeniach generatora

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:

  • Moduł „JSON” jest importowany, aby użytkownik mógł wykorzystać metodę Loads ().
  • Następnie inicjowany jest ciąg „StringVar”
  • Metoda obciążeń () jest stosowana na stringVar, a wynik jest przechowywany w zmiennej „wynikach”
  • Wreszcie, oryginalny ciąg, wynik i typ wynika, są drukowane na terminalu.

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:

  • Ciąg jest rozcięty na każdym wystąpieniu przecinka, aby uzyskać indywidualne pary kluczowe
  • Dla każdego podłańca pary kluczowej ciąg jest podzielony na występie łącznika ”-”A dwie sekcje są przydzielane do zmiennych„ A ”i„ B ”. „A” przechowuje kluczową część, podczas gdy „B” utrzymuje część wartości.
  • Metoda Strip () jest stosowana na obu zmiennych „A” i „B” w celu usunięcia wszelkich pustych przestrzeni przed lub po ciągu.
  • Następnie obie te zmienne są przekazywane do metody DICT () w celu utworzenia nowej zmiennej słownika, „wynik”
  • Na koniec wydrukuj oryginalny ciąg i konwertowaną zmienną, a jego typ na terminalu za pomocą metody drukuj ()

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.