如何展开json

2024-06-02 06:41:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,每行都有json对象,如下所示。我可以知道使用pandas释放json的一些方法吗


{"resource":{"resourceType":"bund","id":"c4356","extension":[{"url":"member","valueString":"covid"},{"url":"complaint","valueString":"ache"},{"url":"code","valueCodeableConcept":{"id":"797fe48b","coding":[{"system":"followup","code":"choice","display":"Please followup"}]}}],"identifier":[{"use":"primary","system":"consult","value":"3867"},{"use":"secondary","system":"visit","value":"9089"},{"use":"third","system":"kjhd","value":"972e68"}],"codes":[56,86,65]}}
{"resource":{"resourceType":"bund","id":"dvdv6","extension":[{"url":"member","valueString":"covid"},{"url":"complaint","valueString":"stomach"},{"url":"code","valueCodeableConcept":{"id":"9765e48b","coding":[{"system":"followup","code":"choice","display":"Please followup"}]}}],"identifier":[{"use":"primary","system":"consult","value":"3867"},{"use":"secondary","system":"visit","value":"8789"},{"use":"third","system":"kjhd","value":"872e68"}],"codes":[76,89,90]}}

我尝试使用json_normalize编写代码


Tags: idjsonurlvalueuseextensioncodesystem
1条回答
网友
1楼 · 发布于 2024-06-02 06:41:55

使用

  • json_normalize()
  • explode()的嵌入列表(reset_index()以便联接可以工作)
  • apply(pd.Series)连接回嵌入式DICT的数据帧
  • 稍微清理一下以删除嵌入的dict
import json, io
s = """{"deleted_flg":false,"resource":{"resourceType":"bund","id":"c4356","extension":[{"url":"member","valueString":"covid"},{"url":"complaint","valueString":"ache"},{"url":"code","valueCodeableConcept":{"id":"797fe48b","coding":[{"system":"followup","code":"choice","display":"Please followup"}]}}],"identifier":[{"use":"primary","system":"consult","value":"3867"},{"use":"secondary","system":"visit","value":"9089"},{"use":"third","system":"kjhd","value":"972e68"}],"codes":[56,86,65]}}
{"deleted_flg":true,"resource":{"resourceType":"bund","id":"dvdv6","extension":[{"url":"member","valueString":"covid"},{"url":"complaint","valueString":"stomach"},{"url":"code","valueCodeableConcept":{"id":"9765e48b","coding":[{"system":"followup","code":"choice","display":"Please followup"}]}}],"identifier":[{"use":"primary","system":"consult","value":"3867"},{"use":"secondary","system":"visit","value":"8789"},{"use":"third","system":"kjhd","value":"872e68"}],"codes":[76,89,90]}}"""
s = s.replace("\n",",")
s = f"[{s}]"
df = pd.json_normalize(json.loads(s)).explode("resource.extension").explode("resource.identifier").explode("resource.codes").reset_index(drop=True)
df = df.join(df["resource.extension"].apply(pd.Series)).join(df["resource.identifier"].apply(pd.Series)).drop(columns=["resource.extension","resource.identifier"])
df = df.join(df["valueCodeableConcept"].apply(pd.Series)).drop(columns=["valueCodeableConcept",0]).explode("coding").reset_index(drop=True)
df = df.join(df["coding"].apply(pd.Series), rsuffix="_coding").drop(columns=["coding",0])

^{tb1}$

相关问题 更多 >