如何读取API JSON数据并存储为Python字典

如何读取API JSON数据并存储为Python字典

问题描述:

我正在从API中获取信息。返回的数据是JSON格式。我必须迭代并获取多个输入的相同数据。我想将每个输入的JSON数据保存在python字典中以便于访问。这是我到目前为止有:如何读取API JSON数据并存储为Python字典

import pandas 
import requests 

ddict = {} 

read_input = pandas.read_csv('input.csv') 
for d in read_input.values: 
    print(d) 
    url = "https://api.xyz.com/v11/api.json?KEY=123&LOOKUP={}".format(d) 
    response = requests.get(url) 
    data = response.json() 
    ddict[d] = data 

df = pandas.DataFrame.from_dict(ddict, orient='index') 

with pandas.ExcelWriter('output.xlsx') as w: 
    df.to_excel(w, 'output') 

与上面的代码,我得到以下的输出:

a.com 

我也只有从这个第一线获得与数据的Excel输出。我的输入CSV文件有近400行,所以我应该看到在输出和输出excel文件中多于1行。

如果您有更好的方法来做到这一点,将不胜感激。另外,我得到的excel输出很难理解。我想用字典和子字典读取JSON数据,但我不完全理解底层数据的格式 - 我认为它看起来最接近JSON数组。

我看了很多其他帖子,包括Parsing values from a JSON file using Python?How do I write JSON data to a file in Python?Converting JSON String to Dictionary Not ListHow do I save results of a "for" loop into a single variable?,但迄今为止这些技术都没有工作。如果可能的话,我宁愿不腌。

我是新来的Python,所以任何帮助表示赞赏!

我不打算用JSON来解决你的挑战,因为我需要更多关于你面临的问题的信息。但是,关于使用熊猫阅读CSV文件,这里有一个很好的资源:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

现在,您的输出正在被读取的方式,因为a.com被视为标题(不受欢迎)。你读的说法应该是:

read_input = pandas.read_csv('input.csv', header=None) 

现在的read_input是一个数据框(documentation)。所以,你真正想要的是第一列中的值。您可以通过read_input.values轻松获得一组值。这为每行提供了一个单独的数组。所以你的for循环将是:

for d in read_input.values: 
    print(d[0]) 
    get_info(d[0]) 

对于JSON,我需要看到一个示例结构和您想要的方式来存储它。

我认为你的程序有一个尴尬。

试试这个:

ddict = {} 
read_input = pandas.read_csv('input.csv') 
for d in read_input.values: 
    url = "https://api.xyz.com/v11/api.json?KEY=123&LOOKUP={}".format(d) 
    response = requests.get(url) 
    data = response.json() 
    ddict[d] = data 

编辑:迭代read_input.values

+0

我做了编辑,但代码仍然没有迭代通过csv文件。 – SizzyNini

+0

你应该迭代'read_input.values'。 –