# Description: 清理数据集处理,将相同的人从n_samples.json中移除import json
import osfrom tykit import pb_iter# 字典是另一种可变容器模型,且可存储任意类型对象。
# 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
N_PATH = './n_samples.json'
TXT_PATH = './result.txt'def total_request(data: dict) -> int:"""统计data中有多少的request_images,表示n_sample.json有几个元素"""total = 0for sample in data['images']:total += len(sample['request_images'])return totaldef get_n_img2sample(n_data: dict) -> dict:"""通过解析n_samples.json,从n_data中获得request_path和sample的关系  """img2sample = {}for sample in n_data['images']:request_images = sample['request_images']if not request_images:continuefor request_image in request_images:img2sample[request_image] = samplereturn img2sampledef readydelete(TXT_PATH):deletelist = []with open(TXT_PATH, 'r') as f:contents = f.readlines()  # 读取全部行for i in contents:delete = i.split(',')[0]deletelist.append(delete)return deletelist# n_img2sample为要删除的元素组成的字典,哈希表
# delete为result.txt中的列表def remove_request_in_n(n_data: dict, n_img2sample: dict, deletelist: list) -> dict:"""将request 的 sample 从 n_samples.json 中移除"""for pair in pb_iter(deletelist):sample = n_img2sample[pair]n_data['images'].remove(sample)return n_datadef deal_with_fps(N_PATH='./n_samples.json', TXT_PATH='./result.txt'):with open(N_PATH, 'r') as f:n_data = json.load(f)print("n has samples: ", len(n_data['images']))# 从n_data中获得request名和sample的关系n_img2sample = get_n_img2sample(n_data)# 从txt文件中读取 n_samples要删除的内容delete = readydelete(TXT_PATH)print("Pairs need to be processed: ", len(delete))# 将request 的 sample 从 n_samples.json 中移除new_n_data = remove_request_in_n(n_data, n_img2sample, delete)print("new n has samples: ", len(new_n_data['images']))with open('new_n_samples.json', 'w') as f:json.dump(new_n_data, f, indent=4)deal_with_fps(N_PATH, TXT_PATH)

就是要构建一个字典来映射request_images和sample的关系,sample为列表中的元素

通过result.txt文档然后删除对应的sample

使用字典清理数据集处理,将相同的人从n_samples.json中移除相关推荐

  1. Data.FireDACJSONReflect多数据集与压缩字节流化的加密的JSon序列化-Delphi 10大数据的实现方法之Json序列化

    Data.FireDACJSONReflect多数据集与压缩字节流化的加密的JSon序列化-Delphi 10大数据的实现方法之Json序列化 uses Data.FireDACJSONReflect ...

  2. rstudio的数据集怎么建立和保存_在R Studio中保存

    R项目 你应该阅读Using Projects - RStudio Support . R项目非常有用,但它们不用于保存R环境中的数据 . 它们由RStudio代码编辑器专用 . 他们做的最好的事情之 ...

  3. 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据

    背景 在做接口自动化的过程中,接口返回的数据是  列表字典循环嵌套  格式的,所以怎样通过一个key值,获取到被包裹了多层的目标数据成为了摆在我面前的一个问题. 一开始没想自己写,但是搜索后发现虽然很 ...

  4. python 字典字符串转字典——urllib.request.Request发送get,post请求,发送json参数

    1.eval方法即可[字典字符串转字典] file_content = eval(file_content) 2.urllib.request.Request发送post请求,发送json参数 fro ...

  5. python读取数据集前十行_Python读取数据集并消除数据中的空行方法

    如下所示: # -*- coding: utf-8 -*- # @ author hulei 2016-5-3 from numpy import * import operator from os ...

  6. 怎样在微信中清理数据存储空间?经验技巧!如何在微信中清除缓存数据信息?

    现在微信已经成为我们大家生活中的一款主流聊天软件了,在生活中我们都会使用微信来与朋友家人之间进行聊天互动,在工作中使用微信发布信息与客户同事之间进行交流沟通,在我们大家使用微信的同时,会产生许多的缓存 ...

  7. python读取数据集的方法_Python读取数据集并消除数据中的空行方法

    如下所示: # -*- coding: utf-8 -*- # @ author hulei 2016-5-3 from numpy import * import operator from os ...

  8. python中无限遍历在多维嵌套字典、列表的JSON中获取路径path跟对应的值——find_path(终极版)

    真鸡儿痛苦,网上搜寻了一大堆,都没我想要的,要不是纯字典,要不只能拿到value值,我想要的是具体路径啊! 没把法,只能自己强上了!本来3个函数就能搞定了,根据要找的value值得到该值的具体路径,但 ...

  9. Python清理微信被好友删除的人

    脚本来自:https://github.com/0x5e/wechat-deleted-friends 由于微信网页登录接口已经限制了,不能登录,可以看下原理:通过把好友循环添加到群,查看返回的代码来 ...

最新文章

  1. 1042. 托普利兹矩阵
  2. R语言Kmeans聚类、抽取聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(ASW)为Kmeans选择最优的聚类K值、并与层次聚类的最优K值进行比较
  3. this.class.getClassLoader().getResourceAsStream与this.class.getResourceAsStream
  4. camera客观测试_光学图像测试之屏幕色彩管理测试
  5. flex 设置换行flex-wrap
  6. 组织敏捷之路上的七点体会
  7. SqlServerCe 数据库操作示例
  8. 除了Open Day,Nibiru与DigiArtist来CJ 搞事情了
  9. 开源的pop3和smtp组件(支持中文及SSL)
  10. 双机通信c语言程序,双机通信(C语言、主机和从机共用程序)
  11. Node操作Mysql的简单例子
  12. lintcode :sort letters by case字符大小写排序
  13. 二元隐函数求二阶偏导_二元隐函数的二阶偏导数的计算方法
  14. uniapp + vue3微信小程序开发(2)活体人脸识别
  15. 软件测试判定表测试用例,黑盒测试用例设计方法之判定表法
  16. 解答私信@weixin_63670635 //2021-10-30 C语言 某商场节假日商品打折,优惠政策如下:(1)购买商品价格低于100元的,不享受优惠。。。
  17. 【python】一篇文章入门python简单画图
  18. wdr7500 虚拟服务器,TP-Link TL-WDR7500路由器端口转发怎么设置
  19. 苹果Mac系统快捷键 mac新手必看
  20. 新建vivado工程仿真或修改原仿真代码后,仿真波形不更新问题(已解决)

热门文章

  1. Visual Studio (VS)2019 常用快捷键
  2. 9.4 Python图像处理之图像数学形态学-基于灰度形态学的应用(形态梯度、形态平滑、高帽变换、低帽变换)
  3. matlab csp共空间代码,运动想象中共空间模式算法(CSP)的实现
  4. 求助!如果想从事3D建模需要选择什么专业?
  5. 电感检测_开路检测电路中的贴片电感器
  6. 如何评价FAIR的新论文DETR?
  7. 使用KiCad插件,将PCB焊接可视化
  8. 万科、华润、万达内部管理架构!
  9. 教你用TensorFlow做图像识别
  10. 用java写米与英尺,JAVA 英制变换(英尺与英寸)