首页 > 解决方案 > 从列表中制作 csv 文件

问题描述

我必须使用银行的数据制作简单的交换网络。我已经下载并存储在数据中。这是我的代码:

import requests

response = requests.get("http://api.nbp.pl/api/exchangerates/tables/C?format=json")

data = response.json()

现在的问题是如何从中获取“费率”列表并根据该列表制作一个 CSV 文件,如下所示:

[
  {
    "table": "C",
    "no": "215/C/NBP/2021",
    "tradingDate": "2021-11-04",
    "effectiveDate": "2021-11-05",
    "rates": [
      {
        "currency": "dolar amerykański",
        "code": "USD",
        "bid": 3.9437,
        "ask": 4.0233
      },
      {
        "currency": "dolar australijski",
        "code": "AUD",
        "bid": 2.9158,
        "ask": 2.9748
      },
      {
        "currency": "dolar kanadyjski",
        "code": "CAD",
        "bid": 3.1679,
        "ask": 3.2319
      },
      # more here
    ]
  }
]

我不知道怎么做。任何人都可以帮忙吗?

标签: pythoncsvcurrency

解决方案


import csv

import requests

response = requests.get("https://api.nbp.pl/api/exchangerates/tables/C?format=json")
data = response.json()

keys = data[0]["rates"][0].keys()
with open("out.csv", "w", newline="") as f:
    dict_writer = csv.DictWriter(f, keys)
    dict_writer.writeheader()
    dict_writer.writerows(data[0]["rates"])

推荐阅读