-1

ファイルを解析する必要があります。コードが機能しません。ファイルには次の値があります。

num=123-456-7890&kv1=1&kv2=12&kv3=0
num=123-456-7890&kv4=1&kv2=12&kv3=0
num=123-456-7890&kv1=10&kv2=12&kv3=0



crs = open("file.txt", "r")
keys = {k: v for k, v in [i.split('=') for i in crs.read().split('&')]}

print keys 

result = {}
for key, value in [s.strip for s in keys.items()]:
    if key == 'kv1':
       result[key] = int(value)

print result 

どうもありがとう。

4

3 に答える 3

0

このAggregating key value pair in python for reading from a file に対する他の質問の回答を更新しました。

于 2013-06-11T00:26:32.727 に答える
0

これは私がしたいことです。私はそれがより良く最適化できると確信しています

crs = open('file.txt','r')
result={}
k1 = 0
k2 = 0
for line in crs.read().strip().split('\n'):
    for pair in line.split('&'):
        (key,value) = pair.split('=')
        if key in ('kv1','kv2'):
           if key == 'kv1':
              k1 += int(value)
              result[key] = int(k1)
           else:
              k2 += int(value)
              result[key] = int(k2)
        else:
             result[key] = value

print result['num']+'&'+'kv1='+str(result['kv1'])+'&'+'kv2='+str(result['kv2'])
于 2013-06-12T00:35:06.947 に答える