相同點
- 都是鍵值對
- 轉換字符串到對象時,字符串中轉義字符(比如 "\r\n" or ""abc"")需要像這樣表示:"\r\n" or "\"abc\""
- 字符串除了鍵值對不能有其它字符,比如代碼注釋! ‘#’
不同點
- json key不能使用單引號,字典可以
- json可以解析用
''' '''
括起來的字符塊字符串(json.load(str)
),字典只用eval
函數進行字符串到字典的轉換則會報錯,要使用字符塊,可以將字符串的'\n'替換為' '再轉換為字典對象即可。
e.g.
import json
user = '''
{
"name" : "jim\\r\\n",
"sex" : "male",
"age": 18
}
'''
print(user)
jsonUser = json.loads(user)
print(jsonUser["name"].encode())
user = '''
{
"name" : "jim\\r\\n",
"sex" : "male",
"age": 18
}
'''
print(user)
user = user.replace("\n", " ")
eval_user_info = eval(user)
print(eval_user_info["name"].encode())
結果為:
{
"name" : "jim\r\n",
"sex" : "male",
"age": 18
}
b'jim\r\n'
在使用字符串轉換到它們時,要特別注意字符串的格式。