我有一個代碼庫通過正在使用的Django smart_str
方法:有沒有辦法用Python原生解決方案替換Django的smart_str?
for p in pro:
print smart_str(p["title"])
我想用原來的Python的解決方案來替代它,而不裏面涉及Django的,但我不知道什麼smart_str
究竟做:
smart_str(s, encoding='utf-8', strings_only=False, errors='strict')
()的別名上Python 2和smart_text()此 函數返回一個STR或懶惰字符串。
和
smart_bytes(s, encoding='utf-8', strings_only=False,errors='strict')
返回s的字節串的版本,編碼 如在編碼指定。
如果strings_only爲True,則不要轉換(某些)非類字符串的對象。
我們可以用print unicode(u'\xa1').encode("utf-8")
來代替嗎?
這是*「Python自身」 *請參閱[源代碼](https://github.com/django/django/blob/92053acbb9160862c3e743a99ed8ccff8d4f8fd6/django/utils/encoding.py)。它處理的事件多於您建議的替代方案。 – jonrsharpe
我明白了,所以我只是將'smart_byte'和'force_byte'函數的代碼複製爲獨立於django –
此外,您還需要實現(或至少提供一個虛擬)'django.utils.functional.Promise'按原樣使用它們。 – jonrsharpe