在django項目中經(jīng)常會用到各種格式的轉(zhuǎn)化比如model轉(zhuǎn)dict,json轉(zhuǎn)dic、轉(zhuǎn)數(shù)組等,這里舉例幾個在項目中使用過得方法供參考。
1. is_json(myjson)`該方法用于判斷傳入的字符串是否為有效的 JSON 格式。如果輸入的字符串能夠被成功解析為 JSON,則返回 True否則返回 False。
首先檢查輸入的字符串是否全為數(shù)字,如果是則直接返回 False,因為純數(shù)字不是有效的 JSON。使用 json.loads()`嘗試解析字符串,如果解析成功則返回 True;如果解析失敗則捕獲異常并返回 False。
# 測試有效 JSON 字符串
valid_json = '{"name": "Alice", "age": 25}'
print(is_json(valid_json)) # 輸出: True
# 測試無效 JSON 字符串
invalid_json = 'not a json'
print(is_json(invalid_json)) # 輸出: False
# 測試純數(shù)字字符串
digit_string = '12345'
print(is_json(digit_string)) # 輸出: False
2. object_to_list(obj)該方法用于將對象轉(zhuǎn)換為字典,排除對象中的 `_state` 屬性。
主要用于將數(shù)據(jù)庫模型對象轉(zhuǎn)換為字典,以便于序列化或進一步處理。
使用字典推導式遍歷對象的 `__dict__` 屬性,排除 `_state` 屬性。返回過濾后的字典。
class User:
def __init__(self, id, name, age):
self.id = id
self.name = name
# 創(chuàng)建一個 User 對象
user = User(1, "Alice", 25)
# 將 User 對象轉(zhuǎn)換為字典
user_dict = object_to_list(user)
print(user_dict) # 輸出: {'id': 1, 'name': 'Alice', 'age': 25}
以上方法分別用于不同的場景:
is_json(myjson) 用于驗證字符串是否為有效的 JSON 格式。
object_to_list(obj)用于將對象轉(zhuǎn)換為字典,排除特定屬性,適用于數(shù)據(jù)庫模型對象的序列化。
希望這些方法的解析和用法示例能幫助你在實際開發(fā)中更好地理解和使用它們。