繁体   English   中英

Python 脚本下载 JSON 数据并另存为/转换为 CSV

[英]Python script dow download JSON data and save as/convert to CSV

我无法以 JSON 格式下载数据并将其转换为 csv 文件。 在这种情况下,它是来自 alphavantage 的公司概览数据( https://www.alphavantage.co/query?function=OVERVIEW&symbol=IBM&apikey=demo

我可以使用以下脚本下载数据:

import requests
import pathlib

solditems = requests.get('https://www.alphavantage.co/query?function=OVERVIEW&symbol=IBM&apikey=demo') # (your url)
pathlib.Path('data2.json').write_bytes(solditems.content)

然后我必须以 json 格式在我的本地驱动器上存储数据。 但是后来我尝试将 JSON 转换为 CSV ,到目前为止,不同的方法对我来说都失败了。 我用 pandas ( https://datatofish.com/json-string-to-csv-python/ )或这个( Z5E056C500A1C4B6A7110B50D80D807BADEes5Z://howedium -file-to-csv-python-script-a9ff0a3f906e )但我无法获得任何工作方法。 最好的方法是什么? 我想要一个 2 行的 CSV 文件。 第一行是 Symbol、Name、Decritpion 等键,第二行是值。

我只需要一个基本脚本即可下载 JSON 数据并将其转换为 CSV 文件。 所以我可以参数化它并围绕这个过程建立一个循环。 但我被困住了

Pandas 确实有一个json_normalize方法来做到这一点。 或者,另一个选项是您可以从 json(字典)构造 dataframe,只要每个字典都在列表中,其中表中的每一行由列表中的每个元素表示。

另请注意,您可以在请求上使用.json()立即存储。 无需写入本地文件,然后转换为 csv。

import requests
import pandas as pd

solditems = requests.get('https://www.alphavantage.co/query?function=OVERVIEW&symbol=IBM&apikey=demo').json() # (your url)

df = pd.json_normalize(solditems)
df.to_csv('data.csv', index=False) 

或使用单个字典:

df = pd.DataFrame([solditems])

Output:

print(df)
  Symbol     AssetType  ... LastSplitFactor LastSplitDate
0    IBM  Common Stock  ...             2:1    1999-05-27

[1 rows x 60 columns]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM