2016-05-21 9 views
0

私は初心者のためのPythonを学んでいます。列の値をユニコード時刻( '1383260400000')からタイムスタンプ(1970-01-01 00:00:01 enter code here)に変換したいと思います。私は以下を読み、試しましたが、それは私にエラーを与えています。列内の複数行をPythonのタイムスタンプにユニコードから変更する方法

ti=datetime.datetime.utcfromtimestamp(int(arr[1]).strftime('%Y-%m-%d %H:%M:%S'); 

無効な構文です。私はいくつかのものを読んで試しましたが、私は正しく来ることができません..どんな提案?

そしてもう一つは、私は0に置き換えたいと思い、いくつかの空のセルを持っている同じファイルで、私もこれを試してみましたが、その私に無効な構文を与える:

smsin=arr[3]; if arr[3]='' : smsin='0'; 助けてください。大いに感謝する。

答えて

0

(arr[1])の後ろに閉じ括弧を忘れてしまったようです。空の文字列''Falsetruth valueを持つ唯一の列であるため、後者のみ正しく動作することを

arr = ['123', '456', '', '789', ''] 
arr = [x if x else '0' for x in arr] 

print(arr) 
# => ['123', '456', '0', '789', '0'] 

注:あなたができるあなたのリストに「0年代と空の文字列を置き換えるために

import datetime 

arr = ['23423423', '1163838603', '1263838603', '1463838603'] 
ti = datetime.datetime.utcfromtimestamp(int(arr[1])).strftime('%Y-%m-%d %H:%M:%S') 

print(ti) 
# => 2006-11-18 08:30:03 

。あなたはarr内の他のデータ型を持っていた(例えば00L0.0()[]、...)とだけ空の文字列を置換したい場合、あなたは何をする必要があります:

arr = [x if x != '' else '0' for x in arr] 

をより効率的にまだだろうリスト全体を再作成する代わりにarrを修正してください。

for index, item in enumerate(arr): 
    if item = '': 
     arr[index] = '0' 

しかし、問題がなければ(リストが大きすぎないなど)、前者の方が好きです。

また、コード行の末尾に;を置く必要はありません。Pythonは文を終了する必要がないからです。同じ行に複数のステートメントを配置したい場合は、ステートメントの区切りに使用することができますが、これはコードには当てはまりません。

+0

ちょっと、私は1時間座っていなければならなかった...それは働いた。ありがとう –

+0

私はそれが働いていたと思ったが、ここに私の全体のコードです: –

+0

それを別の場所に入れて、コメントは600文字に制限されています。 –

関連する問題