相同点
- 都是键值对
- 转换字符串到对象时,字符串中转义字符(比如 "\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'
在使用字符串转换到它们时,要特别注意字符串的格式。