添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
生信Log27|一文总结python不同结构数据的增删查改

生信Log27|一文总结python不同结构数据的增删查改

生信Log|一文总结python不同结构数据的增删查改

用pandas已经有一段时间了,从初学者到现在发现处理的数据类型除了dataframe以外,一般是字符,列表,字典(json的文件格式)和Series,dataframe在这里总结一下自己常用的操作供以后查阅。网络返回的数据大多数都是json格式的,着重记录字典的应用

1、字典

  • 查看字典的key和values
#查看key
dict.keys() #打印出全部的keys
#查看value
dict.values()
#查看特定key对应的value
dict.get(key) #输出的是value
#遍历所有的key和对应的value
for k,v in dict.items():
    print(k,v)
  • 增加字典的key
查看了很多资料发现很多都是需要加上值
#增加key的方法
dict['new_key'] = 'new_value'
#后续如果想要再读进文件相同key中的value最好还是用update,字典会自动舍弃掉重复值,保持key的unique特性,使用list的append有很多重复值
dict.update({'new_key':'new_value'}) #注意花括号
#两个字典合并
dict_1 |dict_2


2、列表List

#循环读取列表并编辑
list = [a, b, c, d]
list = [i + '@' for i in list]
#增加元素
list.append(new_element)
# 删除list中的元素
list.remove('element')
#插入元素
list.insert('element')
#其他的一些方法是根据索引index(元素所在的位置对列表中的元素进行修改)
list.pop(list[index]) #后面的元素会自动跟着补齐

3、复杂json(dict)的数据获取

有一些字典的数据里面包含了很多层嵌套,既有典中典,又有典中list,获取数据时难免,在这里介绍一个包叫 jsonPath 建议使用Jsonpath的方法(类似Xpath),这个包通过pip install来下载,一些匹配的规则可以到官网上查询他们的教程

pip install jsonpath-ng # 在终端中下载
from jsonpath-ng import jsonpath, parse
#构建查询的字段
query = "$.node_name"
#根据查询的字段去匹配对应的内容,并获取对应内容所在的jsonPath
#其中value是值,match.full_path返回的是json的值
value = [match.value for match in parse(query).find(data)]
value_path = [str(match.full_path) for match in parse(query).find(data)]
#如果key对应的value是个list该怎么匹配
query = "$.node_name[*]" #这个'[*]'就是列表里面的内容,但这种匹配方法不能拿到
#匹配列表中的列表
query = "$.node_name[*][*]"#这两个[*]是有层级关系的后面一个[*]是前一个list的内容