Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将JSON转换为数据帧_Python_Json_Python 3.x_Pandas_Dataframe - Fatal编程技术网

在Python中将JSON转换为数据帧

在Python中将JSON转换为数据帧,python,json,python-3.x,pandas,dataframe,Python,Json,Python 3.x,Pandas,Dataframe,json格式的数据如下: dict = {"a":1,"b":2,"c":[{dic 1},{dic2},...so on]} dic 1的定义如下,如下面的字典列表所示 dic 1 = {"d":4,"e":{"f":6,"g":7},"h":{"i":9,"j":[10,11,12]},&qu

json格式的数据如下:

dict = {"a":1,"b":2,"c":[{dic 1},{dic2},...so on]}
dic 1的定义如下,如下面的字典列表所示

dic 1 = {"d":4,"e":{"f":6,"g":7},"h":{"i":9,"j":[10,11,12]},"m":13}
因此,整个json文件如下所示:

dict = {"a":1,"b":2,"c":[{"d":4,"e":{"f":6,"g":7},"h":{"i":9,"j":[10,11,12]},"m":13},{dic2},...so on]}
现在我想将这些数据存储为熊猫数据框,如下表所示,请给出您的建议

预期输出:
您的json的结构很复杂!简单点

您的代码无法运行,返回不可损坏的类型“dict”。要解决这个问题,只需解压缩主“dict”(即**dic1)中使用的任何变量

即使这样,也会以2行3列结束。为什么?键“c”中的数据是DICT列表,将列表项解释为列的数据。组织json文件

最后,避免使用“dict”来命名变量。

试试这个

import json
import pandas as pd
from glob import glob
import matplotlib.pyplot as plt

#Convert json string to a flat python dictionary

def convert(x):
    ob = json.loads(x)
    for k, v in ob.copy().items():
        if isinstance(v, list):
            ob[k] = ','.join(v)
        elif isinstance(v, dict):
            for kk, vv in v.items():
                ob['%s_%s' % (k, kk)] = vv
            del ob[k]
    return ob

for json_filename in glob('*.json'):
    csv_filename = '%s.csv' % json_filename[:-5]
    print('Converting %s to %s' % (json_filename, csv_filename))
    df = pd.DataFrame([convert(line) for line in open(json_filename, encoding='utf-8')])
    df.to_csv(csv_filename, encoding='utf-8', index=False)

#Convert csv to pdf
data1 = pd.read_csv('data1.csv')
data2 = pd.read_csv('data2.csv')
data3 = pd.read_csv('data3csv')
data4 = pd.read_csv('data4.csv')
data5 = pd.read_csv('data5.csv')

将所有词典以.json格式保存在文件中 像这样

import json
with open('dict.json', 'w') as fp:
json.dump(dict, fp,sort_keys=True, indent=4)
那就试试这个

      df_json = pd.read_json(r'filepath\dict.json', lines=True)
如果它不起作用,我们将找出一个正则表达式来读取其中的复杂性。
别忘了导入pandas和json,pandas大部分时间都可以处理所有的复杂性。这比使用正则表达式和转换为csv文件所需的时间要短得多。

您没有解释嵌套在dict中的dict列表中应该发生什么。。。请解释这一点,让问题有答案。。。在您的情况下,dict1和dict2中发生了什么具有相同的键?