【问题标题】:read in sequence different json file依次读取不同的json文件
【发布时间】:2022-01-11 03:02:04
【问题描述】:

我的本​​地目录中有不同的 JSON 文件,我用这段代码读取了所有文件

path_to_json = 'C:/Users/../Desktop/NewData'
json_files = [pos_json for pos_json in os.listdir(path_to_json) if pos_json.endswith('.json')]
def func(s):
    try:
        return eval(s)
    except:
        return dict()
list_of_df=[]
for i in range(len(json_files)):
    try:
        file_name = json_files[i]
        df = pd.read_json(file_name, lines=True)
        df= df[['something']]
        df = df['something'].apply(func)
        df=pd.json_normalize(df)
        df=pd.DataFrame(df[["something", "something1"]])
        df['Index'] = 'weather5' + str(6+i)
    except:
        pass
    list_of_df.append(df)
df=pd.concat(list_of_df)
df = df[['Index','something', 'something1']]
df.head() 

我读取的 JSON 文件的名称是 weather56, weather57, weather58, weather59, weather60, weather61

我正在使用这一行 df['Index'] = 'weather5' + str(6+i) 正确读取它们并将它们调整为数据框。但是似乎我没有正确阅读它们,因为现在在数据框中显示为:

Index
weather56
weather57
weather58
weather59
weather510
weather511

如何调整df['Index'] = 'weather5' + str(6+i)这一行来读取带有名字的JSON文件?

【问题讨论】:

    标签: python json python-3.x dataframe


    【解决方案1】:
    df['Index'] = 'weather5' + str(6+i)
    

    随着i 从 0 变为 6,生成的相应值将是

    weather56   // '5' + str(6 + 0)
    weather57
    weather58
    weather59
    weather510  // '5' + str(6 + 4) := '5' + '10'
    weather511
    

    如果您将行更改为

    df['Index'] = 'weather' + str(56+i)
    

    它应该显示为 -

    weather56
    weather57
    weather58
    weather59
    weather60
    weather61
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 2019-11-06
      • 2011-07-05
      • 2019-03-31
      • 1970-01-01
      相关资源
      最近更新 更多