Python String til et dikter

Python String til et dikter

Strenger brukes til å sende/kommunisere data over nettverket, men når denne strengen mottas av et program, må den konverteres til en datatype som støtter raskere manipulasjoner. I Python er det ordbøker som lar brukeren lagre data i form av par eller nøkkelparverdier. Disse ligner veldig på JSON, og i dette innlegget skal du lære å konvertere en Python -streng til en ordbok.

Innholdet i denne guiden er som følger:

  • Metode 1: Bruke JSON.Loads () Metode for å konvertere streng til dikter
  • Metode 2: Bruke AST.LITTERAL_EVAL () Metode for å konvertere streng til DICT
  • Metode 3: Bruke Strip () og Split () i generatoruttrykk

La oss starte med den første metoden med en gang.

Metode 1: Bruke JSON.Loads () Metode for å konvertere streng til dikter

Loads () -metoden brukes til å "laste" en JSON -streng og konvertere den til en JSON, eller i Python, en ordbok. For at denne metoden skal fungere, må imidlertid strengen være i det spesifikke formatet der hver "nøkkel" er innkapslet av anførselstegn, atskilt med en kolon fra "verdien". Og hvert par er atskilt med komma.

For å demonstrere arbeidet med Loads () -metoden for konvertering av streng-til-form, bruk følgende kodebit:

Importer JSON
StringVar = '"Navn": "John Doe", "Age": "20", "yrke": "Doktor" "
ResultatVar = JSON.Loads (StringVar)
Print ("Initial String:", StringVar)
Print ("Etter konvertering:", Resultatvar)
Print ("Type After Conversion:", Type (ResultatVar))

I denne kodebiten:

  • “JSON” -modulen importeres slik at brukeren kan bruke Loads () -metoden.
  • Etter det initialiseres strengen "StringVar"
  • Loads () -metoden brukes på StringVar, og resultatet lagres i "ResultVar" -variabelen
  • Til slutt skrives den originale strengen, Resultatvar og typen resultatvar ut på terminalen.

Når denne koden blir utført, gir den følgende utfall på terminalen:

I denne utgangen kan du enkelt legge merke til at strengen har blitt konvertert til en DICT -datatype i Python.

Metode 2: Bruke AST.LITTERAL_EVAL () Metode for å konvertere streng til DICT

LITTERAL_EVAL () -metoden fra “AST” -pakken kan også brukes til å gjøre nøyaktig samme jobb som Loads () -metoden fra “JSON” -pakken. For å bruke denne metoden, ta en titt på følgende kode:

Importer AST
StringVar = '"Navn": "John Doe", "Age": 20, "Yrke": "Doktor", "Lønn": 40000 "
ResultatVar = AST.LITERAL_EVAL (StringVar)
Print ("Initial String:", StringVar)
Print ("Etter konvertering:", Resultatvar)
Print ("Type After Conversion:", Type (ResultatVar))

Når denne koden blir utført, vil den gi følgende resultat på terminalen:

Utgangen verifiserer at strengen har blitt konvertert til et python dict.

Metode 3: Bruke eval () -metoden for å konvertere streng til dikter

En annen veldig lik metode er eval () -metoden som brukes til å evaluere om en streng er riktig formatert eller ikke og returnerer den konverterte ordboken tilbake til den som ringer. For å se dets arbeid, ta følgende kodeeksempel:

StringVar = '"Navn": "John Doe", "Age": 20, "Yrke": "Doktor", "Lønn": 40000 "
ResultatVar = Eval (StringVar)
print ("Bruke eval () -metoden")
Print ("Initial String:", StringVar)
Print ("Etter konvertering:", Resultatvar)
Print ("Type After Conversion:", Type (ResultatVar))

Når denne koden blir utført, vil den produsere følgende utgang på terminalen:

Du har med hell konvertert en Python -streng til et Python -dikter ved hjelp av eval () -metoden.

Metode 4: Bruke Strip () og Split () i generatoruttrykk

Anta at strengen ikke er i JSON -strengformatet, og at du fremdeles vil konvertere den til et Python Dict. For dette formålet må du bruke forskjellige strengmanipulasjonsmetoder som Strip () og Split (). Anta for eksempel at strengen inneholder nøkkelverdipar, der nøkkelen og verdien er atskilt med en bindestrek “-”, Og hvert par er atskilt med komma. For eksempel er dette strengen som skal konverteres:

StringVar = "Navn - John Doe, alder - 20, yrke - lege, Martial_status - singel"

For å gjøre dette kan brukeren bruke generatoruttrykket, ta en titt på følgende kode:

StringVar = "Navn - John Doe, alder - 20, yrke - lege, Martial_status - singel"
ResultatVar = dict ((a.strip (), b.strip ())
for a, b i (seksjon.dele("-")
for seksjon i Stringvar.dele(",")))
Print ("Initial String:", StringVar)
Print ("AfterConversion:", ResultatVar)
Print ("Type After Conversion:", Type (ResultatVar))

For å forstå denne koden, start fra den innerste sløyfen:

  • Strengen er spaltet på hver forekomst av et komma for å få individuelle nøkkelpar
  • For hvert nøkkelpar-substring er strengen delt på forekomsten av bindestrek “-”Og de to seksjonene tildeles variabler“ A ”og“ B ”. “A” holder nøkkeldelen, mens “B” holder verdien delen.
  • Strip () -metoden brukes på begge variablene “A” og “B” for å fjerne blanke mellomrom før eller etter strengen.
  • Etter det blir begge disse variablene ført inn i DICT () -metoden for å lage en ny ordbokvariabel, "ResultatVar"
  • Til slutt, skriv ut den originale strengen og den konverterte variable resultatet og dens type på terminalen ved hjelp av utskriftsmetoden ()

Når denne koden blir utført, produserer den følgende utgang:

Det kan lett observeres at strengen er konvertert til et python dikter.

Konklusjon

For å konvertere en streng til et python “dikter”, kan brukeren bruke Loads () -metoden fra “JSON” -pakken eller LITTERAL_EVAL () -metoden fra “AST” -pakken. For å bruke disse to metodene, bør imidlertid strengen være en JSON -streng. Annet enn dette, hvis strengen er i et annet format, vil brukeren måtte bruke en kombinasjon av forskjellige strengmanipulasjonsmetoder for å komme med et arbeidsgeneratoruttrykk.