【问题标题】:Convert pandas DataFrame to list of JSON-strings将 pandas DataFrame 转换为 JSON 字符串列表
【发布时间】:2018-07-13 00:10:00
【问题描述】:

我需要知道在这种情况下如何实现to_json_string_list() 函数:

df = pandas.read_json('[{"rec1" : "val1", "rec2" : "val4"}, {"rec1" : "val3", "rec2" : "val4"}]', orient='records')
json_strings = list()
json_strings = to_json_string_list(df)
for json_string in json_strings:
    print(json_string)

得到如下输出:

{“rec1”:“val1”,“rec2”:“val4”}
{“rec1”:“val3”,“rec2”:“val4”}

我知道有函数to_json(orient='records'),但这不是我需要的,因为我得到了:

[{“rec1”:“val1”,“rec2”:“val4”},
{“rec1”:“val3”,“rec2”:“val4”}]

打印不仅仅是我会用这些字符串做的事情,所以[], 的简单替换也不是我需要的。

【问题讨论】:

    标签: python json pandas elasticsearch


    【解决方案1】:

    我认为你需要to_json 和参数lines=True

    print (df.to_json(orient='records', lines=True))
    {"rec1":"val1","rec2":"val4"}
    {"rec1":"val3","rec2":"val4"}
    
    df.to_json('file.json',orient='records', lines=True)
    

    【讨论】:

    • 感谢您的回答,接下来我需要通过换行符split()这个字符串来获取列表?
    • 我认为是的,a = df.to_json(orient='records', lines=True) print (a.split('\n')) 应该可以工作。
    【解决方案2】:

    还有另一种方法可以为您提供 pd.Daa 的相反方法

    import json
    json_lst = []
    for i in (range(len(df)): 
        d = json.loads(df.iloc[i, :].to_json())
        json_lst.append(d)
    

    【讨论】:

      【解决方案3】:

      另一个使用理解列表的选项:

      [dict(v) for _, v in df.iterrows()]
      

      【讨论】:

        猜你喜欢
        • 2020-11-20
        • 2020-04-12
        • 1970-01-01
        • 2020-10-22
        • 2014-05-31
        • 1970-01-01
        • 2014-01-05
        • 2021-11-28
        相关资源
        最近更新 更多