代码之家  ›  专栏  ›  技术社区  ›  nad

在熊猫数据帧中加载一系列JSON对象

  •  0
  • nad  · 技术社区  · 6 年前

    我从下载了一个示例数据集 here 这是一系列JSON对象。

    {...}
    {...}
    

    我需要将它们加载到熊猫数据框中。我试过低于代码

    import pandas as pd
    import json
    
    filename = "sample-S2-records"
    
    df = pd.DataFrame.from_records(map(json.loads, "sample-S2-records"))
    

    但似乎有解析错误

    JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    

    我错过了什么?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Jekys    6 年前

    你可以试试 pandas.read_json 方法:

    import pandas as pd 
    data = pd.read_json('/path/to/file.json', lines=True) 
    print data
    

    我用这个文件测试过,它很好用

        2
  •  2
  •   Rushin Naik    6 年前

    函数需要一个JSON对象列表。例如, 数据=[json_obj_1,json_obj_2,…]

    该文件不包含list语法,只包含一系列JSON对象。下面将解决这个问题:

    import pandas as pd
    import json
    
    # Load content to a variable
    with open('../sample-S2-records/sample-S2-records', 'r') as content_file:
        content = content_file.read().strip()
    
    # Split content by new line
    content = content.split('\n')
    
    # Read each line which has a json obj and store json obj in a list
    json_list = []
    for each_line in content:
        json_list.append(json.loads(each_line))
    
    # Load the json list in form of a string
    df = pd.read_json(json.dumps(json_list))