0

以前の質問がありましたが、これを優先して削除しました。私はそれがdateutilバージョンと関係があるという間違った仮定の下にあったので。

test1 = dateutil.parser.parse("2013-01-24T16:50:42+00:00")  

これはうまくいき、日時を取得します。

しかし

dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime.datetime) else None
test2 =  json.dumps(event.due_date_time, default=dthandler)

print test2-->"2013-01-24T16:50:42+00:00"

これは私には普通の文字列のように見えます

test3 = dateutil.parser.parse(test2)

これは言ってクラッシュしますValueError: unknown string format

では、json文字列を「通常の」文字列に変換するにはどうすればよいですか?

4

2 に答える 2

0

JSON が文字列を引用符で囲むことを忘れています。次の値があります。

jsonvalue = '"2013-01-24T16:50:42+00:00"'

そこの二重引用符に注意してください。

メソッドを再度使用してその値をロードする必要がありますjson.loads()。この場合は、引用符を再度削除するだけです。

>>> print json.loads(jsonvalue)
2013-01-24T16:50:42+00:00

引用符が再びなくなったことに注意してください。.strip('"')ミックスがある場合は、引用符を削除することもできます。

>>> print jsonvalue.strip('"')
2013-01-24T16:50:42+00:00

しかし、JSON データを期待しているので、それを json データとして扱い、モジュールを使用しjsonて Python データに戻してはどうでしょうか。

于 2013-01-26T18:13:17.173 に答える
0

引用符は文字列あります (print はそれらを追加しません)。

それでtest3 = dateutil.parser.parse(test2[1:-1])うまくいきます。

于 2013-01-26T18:13:54.230 に答える