【Python】字符串 转为 JSON 格式的注意事项
1. 字符串转json
我们如果使用sql存储json格式,要将json转为字符串才能转。
存入sql前,字典格式转json字符串可以用这个:
Table_= '''
[{"id": 1,"name": "Alice","task": 25,"work": "alice@example.com"},{"id": 2,"name": "Bob","task": 30,"work": "bob@example.com"}
]
'''
Json_str=json.dumps(Table_).encode().decode("unicode_escape")
print(Json_str)
2. json的引号的使用
python读取从sql中的json字符串时,需要将单引号换为双引号。
JSON 支持字符串(String)类型,但是必须用 双引号 "
括起来。
例如:"hello"
,单引号会成为问题的。
转换的方法:
new_json= Json_str.replace("'",'"')
print(new_json)
如果用python读取sql 里面的json内容,因为读取出来的是字符串类型,
所以要对字符串做转json,这时候要处理单引号双引号的问题。
关于json的其他注意点:
- JSON 数据必须使用双引号,键必须是字符串。
- Python 的
dict
和list
可以轻松转换为 JSON。 - 使用
json.dumps()
和json.dump()
可以生成 JSON 字符串或写入文件。 - 复杂类型需要自定义序列化函数。
- 如果对json格式解码的时候遇到这个问题:
.JSONDecodeError: Expecting property name enclosed in double quotes
除了可能是遇到2的问题,也有可能需要转的对象,不是字符串类型,而是数字类型。
例如:
{ 0 :‘1’}
上面的有问题,,上面的key值,0,不能是数字,要变成 “0”
这就是上面的注意点说的,键值key必须是字符串对象!
如果看不出是什么问题,可以用这个网址来判断json出现了什么格式 :https://jsonlint.com/