api - 如何将api输出json转换为csv文件
问题描述
我有一个api输出如下
{
"sub_start_date_end_date": [
{
"account_id": "10996fd6-a708-4d70-b65e-50620d8fbbdf",
"country": "'USA'",
"end_date": "Fri, 03 Sep 2021 00:00:00 GMT",
"start_date": "Thu, 03 Sep 2020 00:00:00 GMT"
}
]
}
我需要将其另存为创建并将其另存为 csv 文件
@final.route('/start_date-end_datess', methods=['GET'])
def subscription_datess():
subscription_id = request.args.get('subscription_id')
email = request.args.get('email')
update_query = '''
some query '''
result = db.session.execute(text(update_query), {'a':email})
final = [dict(i) for i in result]
excel = json.load(final)
files = csv.writer(open("test.csv", "wb+"))
files.writerow(["account_id", "country", "end_date", "start_date"])
for excel in excel:
files.writerow([excel["account_id"],
excel["country"],
excel["end_date"],
excel["start_date"]])
return{"sub_start_date_end_date":final}
执行此端点时,我收到以下错误 列表'对象没有属性'读取'
请指导
解决方案
编写一个单独的函数并在字典值之后调用它
final.route('/start_date-end_datess', methods=['GET'])
def subscription_datess():
subscription_id = request.args.get('subscription_id')
email = request.args.get('email')
update_query = '''
'''
result = db.session.execute(text(update_query), {'a':email})
final = [dict(i) for i in result]
for items in final:
write_csv(items)
return{"sub_start_date_end_date":final}
def write_csv(data):
with open('excel.csv', 'a') as file:
writer = csv.writer(file)
writer.writerow([data['account_id'],
data['country'],
data['end_date'],
data['start_date']])
推荐阅读
- c# - 从 XML 文件中读取值
- javascript - 在将少量记录插入 Postgres 数据库后,Nodejs 应用程序使用 knex 中断
- ruby-on-rails - 基于 Rails 中的回发事件向用户提供 Facebook Messenger 响应
- r - source() in R without being able to read content
- java - how to use autocomplete in TextArea in javafx
- security - When Joining a Domain, How to Remove Pre-Domain Accounts and Change Permissions?
- eigen - Does conservativeResize() re-Allocate Each Time?
- android - how to solve the gradle error
- cordova - ionic 3 打印插件不工作
- node.js - undefined 不是对象(评估 'this.login().bind')