如何将空数据帧序列化到字典列表中

2024-09-28 23:09:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe输出,我希望能够将其序列化为字典列表,并将日期时间戳转换为字符串。我知道我可以做to_json(orient='records', data_format='iso) ,但它正在被转换成字符串并json.loads(to_json_df)抛出

 File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 293, in load
    return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'

我也尝试过记录,但它不转换时间戳

能做到这一点的最佳方式是什么?下面是flask中的其余GET调用:

columns = ['project_number', 'people_manager', 'quality_manager', 'inserted_at']
projects = get_projects_info(project_ids) # returns pd.DataFrame(columns=columns)
serialized_projects = projects.to_dict('records')
projects = [
   {
     'projectNumber': project['project_number'],
     'peopleManager': project['people_manager'],
     'qualityManager': project['quality_manager'],
     'insertedAt': project['inserted_at'],
   } for project in serialized_projects
]

return {
  'projects': projects
}, 200

预期产出:

{
'projects': [
   {
     'projectNumber': 123,
     'peopleManager': '',
     'qualityManager': '',
     'insertedAt': '2019/2/23'
   },
   {
     'projectNumber': 124,
     'peopleManager': '',
     'qualityManager': '',
     'insertedAt': '2019/2/23'
   },
]}

提前谢谢


Tags: columnsto字符串inprojectjson时间manager
1条回答
网友
1楼 · 发布于 2024-09-28 23:09:30

这是一件不需要动脑筋的事


import json
columns = ['project_number', 'people_manager', 'quality_manager', 'inserted_at']
projects = get_projects_info(project_ids) # returns pd.DataFrame(columns=columns)
serialized_projects = projects.to_json(orient='records', date_format='iso')
serialized_projects = json.loads(serialized_projects)

projects = [
   {
     'projectNumber': project['project_number'],
     'peopleManager': project['people_manager'],
     'qualityManager': project['quality_manager'],
     'insertedAt': project['inserted_at'],
   } for project in serialized_projects
]

return {
  'projects': projects
}, 200

相关问题 更多 >