我正在尝试导入一个(非常)大的 json 文件(3.3m 行,1k 列),其中嵌套了多个嵌套 json。其中一些嵌套 json 是双重嵌套的。我找到了两种将 json 文件导入数据帧的方法,但是,我无法将导入的 json 展平并同时转换为字符串。
我使用的代码是:
# 1: Import directly and convert to string
def Data_IMP(path):
with open(path) as Data:
Data_IMP = pd.read_json(Data, dtype=str)
Data_IMP = Data_IMP.replace("nan", "", regex=True)
return Data_IMP
上面的问题是它没有完全扁平化 json 文件。
# 2: Import json and normalise
def Data_IMP(path):
with open(path) as Data:
d = json.load(Data)
Data_IMP = json_normalize(d)
return Data_IMP
上面的脚本压平了 json,但让 Python 决定每列的 dtype。
有没有办法结合这些方法,使 json 文件扁平化,并且所有列都读取字符串?
最佳答案
我找到了一个有效的解决方案,并且能够导入和展平 json,以及将所有文本转换为字符串。
# Function to import data from ARIC json file to dataframe
def Data_IMP(path):
with open(path) as Data:
d = json.load(Data)
Data_IMP = json_normalize(d)
return Data_IMP
# --------------------------------------------------------------------------------------------------------- #
# Function to cleanse Data file
def Data_Cleanse(Data_IMP):
Data_Cleanse = Data_IMP.replace(np.nan, '', regex=True)
Data_Cleanse = Data_Cleanse.astype(str)
return Data_Cleanse
关于python - 导入json并将所有列转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59048841/