Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Serialisering
Python har indbyggede JSON-biblioteker til at kode og dekode JSON.
I Python 2.5 anvendes simplejson modulet, mens i Python 2.7 anvendes json modulet. Da denne fortolker bruger Python 2.7, vil vi bruge json.
For at bruge json modulet skal det først importeres:
import json
Der er to grundlæggende formater for JSON data. Enten i en streng eller objektets datastruktur. Objektets datastruktur i Python består af lister og ordbøger, der er indlejret i hinanden. Objektets datastruktur giver mulighed for at bruge python-metoder (for lister og ordbøger) til at tilføje, liste, søge og fjerne elementer fra datastrukturen. Strengformatet bruges hovedsageligt til at overføre dataene til et andet program eller indlæse dem i en datastruktur.
For at indlæse JSON tilbage til en datastruktur anvendes "loads" metoden. Denne metode tager en streng og omdanner den tilbage til json objektets datastruktur:
import json
print(json.loads(json_string))
For at kode en datastruktur til JSON anvendes "dumps" metoden. Denne metode tager et objekt og returnerer en streng:
import json
json_string = json.dumps([1, 2, 3, "a", "b", "c"])
print(json_string)
Python understøtter en Python-ejet dataserialiseringsmetode kaldet pickle (og en hurtigere alternativ kaldet cPickle).
Du kan bruge det præcis på samme måde.
import pickle
pickled_string = pickle.dumps([1, 2, 3, "a", "b", "c"])
print(pickle.loads(pickled_string))
Formålet med denne øvelse er at udskrive JSON-strengen med nøgle-værdi parret "Me" : 800 tilføjet til den.
import json
# fix this function, so it adds the given name
# and salary pair to salaries_json, and return it
def add_employee(salaries_json, name, salary):
# Add your code here
return salaries_json
# test code
salaries = '{"Alfred" : 300, "Jane" : 400 }'
new_salaries = add_employee(salaries, "Me", 800)
decoded_salaries = json.loads(new_salaries)
print(decoded_salaries["Alfred"])
print(decoded_salaries["Jane"])
print(decoded_salaries["Me"])
import json
# fix this function, so it adds the given name
# and salary pair to salaries_json, and return it
def add_employee(salaries_json, name, salary):
salaries = json.loads(salaries_json)
salaries[name] = salary
return json.dumps(salaries)
# test code
salaries = '{"Alfred" : 300, "Jane" : 400 }'
new_salaries = add_employee(salaries, "Me", 800)
decoded_salaries = json.loads(new_salaries)
print(decoded_salaries["Alfred"])
print(decoded_salaries["Jane"])
print(decoded_salaries["Me"])
test_output_contains("300")
test_output_contains("400")
test_output_contains("800")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!