将jsons列表转换成dataframe,然后一步一步

Convert a list of jsons into a dataframe and then step-by-step

我有问题。我有一个包含 2549150 元素的列表。但是,我不想使用 pd.json_normalize 方法一次将整个列表转换为数据框。

我想逐步将列表转换为数据框。首先,我想转换列表的前 100,000 个元素,然后从 100,000 + 1 个元素转换为接下来的 100,000 个元素,依此类推。 但是,问题是我的数据框末尾包含 2500000 个元素,而不是 2549150 个元素。因此,我有太多错误的因素。我该如何修复错误?

总而言之,我想在 100,000 步内将列表转换为数据框。

import pandas as pd
my_Dict = {
'_key': '1',
 'group': 'test',
 'data': {},
 'type': '',
 'code': '007',
 'conType': '1',
 'flag': None,
 'createdAt': '2021',
 'currency': 'EUR',
 'detail': {
        'selector': {
            'number': '12312',
            'isTrue': True,
            'requirements': [{
                'type': 'customer',
                'requirement': '1'}]
            }
        }   
 }
a1D= [my_Dict] * 2549150
size = 25 # Didn't want to calculate this myself, but didn't know how else to solve it.
df_complete = pd.DataFrame()
for i in range(0,len(a1D),len(a1D)//size):
    #print(i)
    df = pd.json_normalize(a1D[i:i+100000], sep='_')
    #print(df.shape)
    df_complete= pd.concat([df_complete, df])
df_complete.shape
>>> [OUT]
>>> (2500000, 11)

不要逐步猜测应该有多少个元素,而是按块大小逐步增加到数组的长度:

df_complete = pd.DataFrame()
chunk = 100000
for i in range(0, len(a1D), chunk):
    df = pd.json_normalize(a1D[i:i+chunk], sep='_')
    df_complete = pd.concat([df_complete, df])

df_complete.shape

输出:

(2549150, 11)