【问题标题】:how to read metadata of json file in python如何在python中读取json文件的元数据
【发布时间】:2020-02-25 00:51:01
【问题描述】:

我想知道如何将 json 文件中的元数据读取到 python 中。我想系统地读取或创建 json 文件的单独元数据文件。这将帮助我理解顶级键以及字段名\列名以提取键:值。

非常感谢任何帮助。

提前谢谢你。

【问题讨论】:

  • 你能发布一个简短的例子吗? json 文件的外观以及您要提取哪些信息?
  • 以下是示例 JSON 数据,我相信“meta.view.columns.item”是顶级键。我无法粘贴所需的信息,我可以上传\附加文本文件吗?再次感谢您。
  • 您可以提取部分 JSON 文件并将其粘贴到您的问题中(格式正确)
  • 通过此链接后,我的观察是,首先,我必须打开文件才能查看我的顶级密钥,然后才能开始按照链接进行编码。我不确定是否有任何其他方法可以盲目提取元数据???? dataquest.io/blog/python-json-tutorial

标签: json python-3.x pandas


【解决方案1】:

这可以让你选择 json 文件

import json
import pandas as pd


path = r"D:\file.json"
file = open(path)
json_file = json.load(file)
level = 4
#don't have to put the column names, but it will make the excel in nicer order
df = pd.DataFrame(columns = ["key0", "dt0", "key1", "dt1", "key2", "dt2", "key3", "dt3", "key4", "dt4"])
def parse_json(key, value,curent_level,massage):
    global df
    global level
    if curent_level == level:
        df = df.append(massage,ignore_index = True)
        return
    t = type(value)
    if t == str:
        try:
            tmp = json.loads(value)
            massage["key"+str(curent_level)] = key
            massage["dt"+str(curent_level)] = "json"
            for k in tmp:
                parse_json(k,tmp[k],curent_level+1,massage)
        except:
            massage["key"+str(curent_level)] = key
            massage["dt"+str(curent_level)] = "str"
            df = df.append(massage,ignore_index = True)
            return
    else:
        if t == list:
            massage["key"+str(curent_level)] = key
            massage["dt"+str(curent_level)] = "list"
            for li in value:
                parse_json(key,li,curent_level+1,massage)
        if t == dict:
            massage["key"+str(curent_level)] = key
            massage["dt"+str(curent_level)] = "dict"
            for k in value:
                parse_json(k,value[k],curent_level+1,massage)
        if t == set:
            massage["key"+str(curent_level)] = key
            massage["dt"+str(curent_level)] = "set"
            for li in value:
                parse_json(key,li,curent_level+1,massage)

        massage["key"+str(curent_level)] = key
        massage["dt"+str(curent_level)] = "simple"
        df = df.append(massage,ignore_index = True)


parse_json("json_file", json_file,0,{})
df.to_excel(r"D:\out.xlsx")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2018-04-07
    • 2021-08-19
    • 2022-12-11
    • 1970-01-01
    相关资源
    最近更新 更多