2012-03-01 18 views
1

どのように私はPythonのキー値の名前を変更できますか?pythonのキー値の名前を変更するには

私はこのコードを持っている:

t = { u'last_name': [u'hbkjh'], u'no_of_nights': [u'1'], u'check_in': [u'2012-03-19'], u'no_of_adult': [u'', u'1'], u'csrfmiddlewaretoken': [u'05e5bdb542c3be7515b87e8160c347a0'], u'memo': [u'kjhbn'], u'totalcost': [u'1800.0'], u'product': [u'4'], u'exp_month': [u'1'], u'quantity': [u'2'], u'price': [u'900.0'], u'first_name': [u'sdhjb'], u'no_of_kid': [u'', u'0'], u'exp_year': [u'2012'], u'check_out': [u'2012-03-20'], u'email': [u'[email protected]'], u'contact': [u'3546576'], u'extra_test1': [u'jknj'], u'extra_test2': [u'jnjl'], u'security_code': [u'3245'], u'extra_charged': [u'200.0']} 
key = {str(k): str(v[0]) for k,v in t.iteritems() if k.startswith('extra_')} 
array = [] 
for val in key: 
    data = str(val) + ' = ' + key[val] + ',' 
    array.append(data) 
print array 

それは私にこの与える:私は'extra_'を削除するために何をすべき、それがこのような出力を行い

["extra_charged = 200.0,", "extra_test1 = jknj,", "extra_test2 = jnjl,"] 

を:

["CHARGED = 200.0,", "TEST1 = jknj,", "TEST2 = jnjl,"] 

誰かが私の場合についての考えを持つことができますか? ありがとうございます...

答えて

2

私はこの.replace()

を発見し、私はこのような行う..

data = str(val).replace("extra_","").upper() + ' = ' + key[val] + ',' 
+0

これはおそらく[6:]を使うよりも安全で、最初のkey =とdata =行の変数を使って文字列を簡単に変更できますが、replaceはもっと遅くなります。私は "速く実行する"方法として私のままにしておきます。 – billjamesdev

6

したがって、配列インデックスは最初の6文字を取り除き、upper()は大文字にする必要があります。動作するはず

data = str(val)[6:].upper() + ' = ' + key[val] + ',' 

が持つ1件のデータ=行を交換してください。

+0

私は以下の言ったように、これは(「速い」ソリューションですが、交換すると交換するテキストの変数を使用して)以下は悪くありません。 – billjamesdev

関連する問題