データの切り捨て: 不正な日時値: 列 'created_time' の '2022-11-16 10:04:27'

この問題が発生することは比較的まれです。一般に、このエラーが報告されます。ほとんどの原因は、データベースの列の属性と値が一致していないことです。インターネット上の他の記事を参照してください。ここで私の問題の本当の理由を紹介しましょう。

Python 2.7.16 (default, Mar 25 2021, 03:11:28) 
[GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc- on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = '2022-11-16 10:04:27'  #  问题字符串复制过来的
>>> a
'2022-11-16\xc2\xa010:04:27'
>>> b = '2022-11-16 10:04:27'  # 手动敲键盘
>>> b
'2022-11-16 10:04:27'

上記の a と b の入力は同じように見えますが、出力結果ははるかに悪いことがわかります。

a の出力値、スペース部分は '\xc2\xa0' になります。このスペースは次のとおりです: 非改行空白文字 nbsp (非改行スペース)。これは latin1 (ISO/IEC_8859-1) の拡張文字セット文字に属します。 )。nbsp は主にハイパーテキスト マークアップ言語 (HTML) で使用されます。

b の出力値 (通常の空文字列)

>>> a.decode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 10: ordinal not in range(128)
>>> 
>>> a.decode("latin1")
u'2022-11-16\xc2\xa010:04:27'
>>> 
>>> b = '2022-11-16 10:04:27'
>>> b.decode('ascii')
u'2022-11-16 10:04:27'
>>> 
>>> b.decode("latin1")
u'2022-11-16 10:04:27'

結論は、非改行空白文字を通常の空白スペースに変更するだけです。
スペースを過小評価せず、安易にコピーしないでください。プログラムは厳密なもので、1 は 1、2 は 2 です。

おすすめ

転載: blog.csdn.net/dqchouyang/article/details/128561223