如何从不同的文件中添加python Dictionary中每个键的值

时间:2017-06-16 08:26:10

标签: python dictionary

大家好日子。仍然与python dict战斗。而且,正如我所想,我的最后一个问题。首先,我用第一个数据创建我的字典结构:

for i, (x, y, w, h) in enumerate(faces):
        face = dict()
        face["face_{}".format(i)] =  {"face_rect": str((x, y, w, h)), "Age": "howold", "Gender": "who"}
        with open('face.json', 'a') as fp:
            data_to_write = json.dumps(face)
            fp.write(data_to_write + '\n')

在这部分代码之后,我的face.json看起来像:

  • {“face_0”:{“face_rect”:“(325,65,74,74)”,“年龄”:“howold”,“性别”:“who”}}
  • {“face_1”:{“face_rect”:“(200,77,67,67)”,“年龄”:“howold”, “性别”:“谁”}}}
  • {“face_2”:{“face_rect”:“(467,72,66,66)”,“年龄”:“howold”, “性别”:“谁”}}}
  • {“face_3”:{“face_rect”:“(51,70,86,86)”,“年龄”:“howold”, “性别”:“谁”}}}
  • {“face_4”:{“face_rect”:“(593,58,74,74)”,“年龄”:“howold”, “性别”:“谁”}}}

在另一个py文件中我有另一个进程,应该添加Gender“who”。而且,在第3个py文件应该和Age“howold”。我试着写第二个文件:

face = dict()
face["Gender"] = Guess
with open('face.json', 'a') as fp:
     data_to_write = json.dumps(face)
     fp.write(data_to_write + '\n')

很多种类,但对我不起作用。它重写了我所有的face.json文件,或者只是用另一个结构写新行。 谢谢你的帮助!

UPDATE ------------------------------ 代码的第一部分用于我拥有的每张图片,它是面部检测。它是在字典中写入坐标或矩形,同时我创建的是什么。你可以看到结构。让我展示第二个文件的完整def,我需要从中获取下一个数据:

def classify(sess, label_list, softmax_output, coder, images, image_file):

print('Running file %s' % image_file)
image_batch = make_batch(image_file, coder, not FLAGS.single_look)
batch_results = sess.run(softmax_output, feed_dict={images:image_batch.eval()})
output = batch_results[0]
batch_sz = batch_results.shape[0]
for i in range(1, batch_sz):
    output = output + batch_results[i]

output /= batch_sz
best = np.argmax(output)
best_choice = (label_list[best], output[best])
Guess = 'Guess @ 1 %s, prob = %.2f' % best_choice
print('Guess @ 1 %s, prob = %.2f' % best_choice)
face = dict()
face["Gender"] = Guess
with open('face.json', 'a') as fp:
     data_to_write = json.dumps(face)
     fp.write(data_to_write + '\n')

从这里,正如你所看到的,我需要抓取猜测数据,直到已经创建的字典。这两个文件之间的关系 - 第一次面部检测,创建字典和图像上的裁剪面部。在它之后我们将不再使用探测器,但我们有rect。坐标,我想在json文件中看到的内容。在它之后,第二个文件的代码(分类),给我关于年龄或性别的结果(预测)。它是文本格式。所以,我想拥有它 - 所有数据的json文件:face_rect,Age,Gender。如何更新?

if label_list == ['M', 'F']:    
        face = dict()
        face["face_{}".format(n)] = {"Gender": Guess}
        with open('face.json', 'a') as fp:
            data_to_write = json.dumps(face)
            fp.write(data_to_write + '\n')

0 个答案:

没有答案