[英]Appending data from dataframe to JSON
I am attempting to generate a JSON output from a dataframe and I'm not sure why the values are not being assigned separately:我正在尝试从 dataframe 生成 JSON output 并且我不确定为什么没有单独分配这些值:
emails = []
if len(df) > 0:
for index, name in df.iterrows():
try:
value = str(df.names)
except:
continue
email = {
"names": value
}
emails.append(email)
print(json.dumps(emails, indent=4))
Output: Output:
[
{
"names": "0 abby\n1 josh\n2 john\n3 heather\n4 justin\nName: value, dtype: object"
},
{
Desired output"期望的输出”
[
{
"names": abby
},
{
"names": josh
},
{
"names": john
}
]
Use pandas.DataFrame.to_json()
使用
pandas.DataFrame.to_json()
names = df[["names"]]
print(names.to_json(orient="records"))
Refer documentation参考文档
Instead of代替
value = str(df.names)
Use利用
value = list(df.names)
Series object are not serializable by default but list are serializable. object 系列默认不可序列化,但列表可序列化。 For example this code:
例如这段代码:
df = pd.DataFrame({"a": [1, 2,4,5]})
json.dumps(list(df.a))
will output:将 output:
'[1, 2, 4, 5]'
emails = []电子邮件 = []
if len(email_list) > 0:如果 len(email_list) > 0:
for index, student in email_list.iterrows():
try:
students = int(ids,student_ids)
except:
continue
email = {
"StudentEmails": [student.email],
"student": students,
}
emails.append(email)
print(json.dumps(emails, indent=4))打印(json.dumps(电子邮件,缩进=4))
You need to read the actual data( name.names
) not the whole column( df.names
)您需要阅读实际数据(
name.names
)而不是整列( df.names
)
try:尝试:
if len(df) > 0:
for index, name in df.iterrows():
try:
value = name.names
except:
continue
email = {
"names": value
}
emails.append(email)
print(json.dumps(emails, indent=4))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.