为获取文件名和TCGA样本名之间的映射关系,需利用Python对TCGA metadata.json数据进行处理时,期间需要对metadata.json进行标准化;
1.JSON数据读取
1 import pandas as pd 2 3 jsonPath = r"E:\IT Development\Data\metadata.cart.2021-11-27.json" 4 json = open(jsonPath).read() 5 6 print(json,type(json))
.........
2.JSON数据标准化
读取的json数据默认为字符串类型,json_normalize()要求输入的数据必须为json列表对象,因此可以通过eval()函数将字符串转化为字典元素,但程序运行中发现,metadata.json 存在null 和 true,不能完成转换,执行下述代码:
1 # 替换JSON数据中的null和true,尽量保证原意且不会报错 2 json = json.replace("null","None").replace('true','True')
随后可对数据进行标准化:
1 data = pd.json_normalize(eval(json), record_path='associated_entities', meta=['file_name']) 2 data.to_excel('json.xlsx')