我对Python/代码非常陌生,所以如果这是一个简单的问题,我很抱歉。
我正在尝试下载CSV文件的REST响应
import requests
import json
import csv
from pprint import pprint
r = requests.get('https://finnhub.io/api/v1/stock/executive?symbol=AAPL&token=APIKEYHERE')
f = open ('output.csv', 'w')
writer = csv.writer(f)
for line in r.iter_lines():
writer.writerow(line.decode('utf-8').split(','))
exit()问题是,我的回应是:
{“执行”:{“年龄”:68“名称”:“亚瑟·D·莱文森”自“:2011”标题:“独立董事长”}{“年龄”:58“姓名”:“蒂莫西·库克”自“:2011”标题:“首席执行官”}{“年龄”:55“姓名”:“Luca Maestri”,自2014年以来:“职称”:“首席财务官高级副总裁”主席{“年龄”:55“姓名”:“Jeffrey E. Williams”自“:2018”标题:“首席运营官”}{“年龄”:53 "name":"Katherine L. Adams“,自”:2017“标题:”高级副总统总法律顾问秘书“}{”年龄“:58 "name":"Philip W. Schiller”,自2002年以来:“职称”:“高级副总裁-全球”营销“}{”年龄“:55”“名称”:“Eddy Cue”自“:2011”标题:“高级副总裁-互联网软件和服务”}{“年龄”:48 "name":"Craig Federighi“自”:2012“title:”高级副总裁-软件工程“}{”age“:"name":"John Giannandrea”,因为“:2018”标题:“高级副总裁-机器学习”)和AI战略{}{“年龄”:“名称”:“Deirdre O‘’Brien”自“:2019”标题:“高级副总裁-零售+人员”}{“年龄”:55“名称”:“Daniel J. Riccio”自“:2012”标题:“高级副总裁-硬件工程”}{“年龄”:53“名称”:“Johny Srouji”,自“2015年”以来:“标题”:“高级副总裁-硬件工程”}硬件技术“}{”年龄“:”名称“:”Jonathan P. Ive“自”:“”标题“:”首席设计官“}{”年龄“:70 "name":"James A. Bell”,自“:2015”title:“独立董事”}{“年龄”}{70 "name":"Albert A. Gore“,自”2003年“以来:”标题“:”独立董事“}{“59”名称:“Andrea Jung”自“:2008”标题:“独立董事”}{“年龄”:70 "name":"Ronald D. Sugar“自”:2010“标题:”独立董事“}{”年龄“}{”年龄“:57 "name":"Sue Wagner”,自“:2014”“title”:“独立董事”}}“符号”:“AAPL”}
我如何获得它,这样我就可以定义标题行值,并确保每个标头上的值都是应该的(例如:年龄值都在年龄标题下面,名称值都在名称标题下面等等)
这就是我想要的样子:
任何帮助都是非常感谢的!
发布于 2020-03-22 22:45:42
为此,您应该使用csv模块的DictWriter。下面是python文档DictWriter中的示例
import requests
import json
import csv
from pprint import pprint
r = requests.get('https://finnhub.io/api/v1/stock/executive?symbol=AAPL&token=APIKEYHERE')
with open('output.csv', 'w') as csvfile:
fieldnames = ['name', 'age', 'title', 'since']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
recs = r.json().get('executive')
for rec in recs:
writer.writerow(rec)
exit()https://stackoverflow.com/questions/60805421
复制相似问题