2017-12-05 35 views
-1

私はPythonのnoobであり、数字の抽出に問題があります。そのSQLクエリが、私はそれを文字列型に変換しました。これを行うより良い方法がある場合は、私にも教えてください。私の文字列には似たような多くの単語が含まれているので、別の単語セットの後に番号を抽出したい。このうち特定の文字列と文字列の後に文字列内の数字を見つけよう

{'first_name': 'Abigail', 'last_name': 'Smith', 'updated': '2017-12-04 22:12:24.699-08', 'account_id': '338502', 'created': '2017-12-04 22:12:24.699-08', 'student_id': '1730', 'notes': '', 'school_id': '16', 'major_id': '20', 'status': 'OPEN', 'id': '37'} 

、私は彼らキー "ID" から "37" を抽出したいです。変数に格納してください

私はそれを試しましたが、アポストロフィとコロンのためにインデックスで動作しない文字があるため、動作しているかどうかはわかりません。結果を得るためにSQLを使用する方法があることは知っていますが(query.get( 'id'))、これを文字列で抽出する方法を知りたいと思います。

助けてください!ありがとうございました!

+2

あなたが試したことをここに表示します。 –

+1

上記のvar型は辞書のように見えますが、 'd.get( 'id')'だけでその値を取得できます。 – Manjunath

+0

私はpythonのデータ構造を読むことをお勧めします。 – Manjunath

答えて

1

これはdictionaryようになります - あなたは、単にset["id"]

di = {'first_name': 'Abigail', 'last_name': 'Smith', 'updated': '2017-12-04 22:12:24.699-08', 'account_id': '338502', 'created': '2017-12-04 22:12:24.699-08', 'student_id': '1730', 'notes': '', 'school_id': '16', 'major_id': '20', 'status': 'OPEN', 'id': '37'} 

print(di["id"]) 

出力でそれにアクセスすることができます完了

37 

それが文字列である場合、あなたはこのような辞書にそれを分割することができますが:

di = "{'first_name': 'Abigail', 'last_name': 'Smith', 'updated': '2017-12-04 22:12:24.699-08', 'account_id': '338502', 'created': '2017-12-04 22:12:24.699-08', 'student_id': '1730', 'notes': '', 'school_id': '16', 'major_id': '20', 'status': 'OPEN', 'id': '37'}" 

pairs = [x.replace("'","").strip("{}") for x in di.split(",")] 
dic = dict([ x.replace("'","").strip().split(":",1) for x in pairs]) 
print(dic) 
print(dic ["id"]) 

出力:

{'first_name': ' Abigail', 'last_name': ' Smith', 'updated': ' 2017-12-04 22:12:24.699-08', 'account_id': ' 338502', 'created': ' 2017-12-04 22:12:24.699-08', 'student_id': ' 1730', 'notes': '', 'school_id': ' 16', 'major_id': ' 20', 'status': ' OPEN', 'id': ' 37'} 
37 
1

あなたは

を辞書に文字列を変換するために、ASTモジュールを使用することができます
import ast 
d="{'first_name': 'Abigail', 'last_name': 'Smith', 'updated': '2017-12-04 22:12:24.699-08', 'account_id': '338502', 'created': '2017-12-04 22:12:24.699-08', 'student_id': '1730', 'notes': '', 'school_id': '16', 'major_id': '20', 'status': 'OPEN', 'id': '37'}" 
dic=ast.literal_eval(d) 
print dic['id'] 

出力

37 
関連する問題