python - 将特定的 Json 数据抓取到 csv
问题描述
我正在尝试抓取一些 json 数据。前几行 ae 如下,后面的所有行都采用相同的格式。json数据:
{
"data": [
{
"date": "2011-10-07",
"f(avg(output_total)/number(100000000))": 50
},
{
"date": "2011-10-08",
"f(avg(output_total)/number(100000000))": 50
},
{
"date": "2011-10-12",
"f(avg(output_total)/number(100000000))": 50
},
{
"date": "2011-10-13",
"f(avg(output_total)/number(100000000))": 54.0515120216902
},.......]
我愿意将日期及其相关值(如 fi= 或以上、2011-10-07 和 50、2011-10-08 和 50 等)刮到一个包含两列(日期和值)的 csv 文件中
我该如何进行?python可以吗?
这就是我获取 json 数据的方式:
import os
import requests
url='https://api.blockchair.com/litecoin/transactions?a=date,f(avg(output_total)/number(100000000))'
proxies = {}
response = requests.get(url=url, proxies=proxies)
print(response.content)
解决方案
如果您只想要一个 CSV 文件而不依赖任何其他 Python 模块(例如 pandas),那么它非常简单:
import requests
CSV = 'blockchair.csv'
url='https://api.blockchair.com/litecoin/transactions?a=date,f(avg(output_total)/number(100000000))'
with requests.Session() as session:
response = session.get(url)
response.raise_for_status()
with open(CSV, 'w') as csv:
csv.write('Date,Value\n')
for d in response.json()['data']:
for i, v in enumerate(d.values()):
if i > 0:
csv.write(',')
csv.write(str(v))
csv.write('\n')
推荐阅读
- cobol - 从一维数组中查找总数 - COBOL
- laravel - windows中heroku达到的最大setlocal递归级别
- jquery - 回发后克隆的 html 行消失
- aurelia - 路由#/items/ AND #/items/:id/summary 的正确 aurelia 路由器配置是什么?
- c# - WPF 绑定 - 列表框选定项更新未反映在绑定到它的文本块中
- java - Spring Data Mongodb(java):可以将@Dbref 与抽象接口一起使用吗?
- python - Python3 FOR 循环不会遍历用于传递 postgressql 参数的所有参数列表
- java - Android DownloadManager“无法创建目录:/storage/sdcard/Download”
- mysql - 如何根据 SQL 模式更新列内的特定数据?
- javascript - 吞下消息:错误:未捕获(承诺中):[对象未定义]