将pandas DataFrame转换为JSON字符串列表

4

我需要知道如何在这种情况下实现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"}]
打印输出并不是我对这些字符串要做的唯一事情,因此简单的替换[],也不是我需要的。
3个回答

16

我认为您需要使用参数lines=Trueto_json

---
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()这个字符串以获取列表? - Prime Ape
我认为可以,`a = df.to_json(orient='records', lines=True)print (a.split('\n'))` 应该可以运行。 - jezrael

0

还有另一种方法可以给出pd.Daa的反向结果

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

0

使用列表推导式的另一种选项:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接