如何使用 Python 获取此 json 数据并将其放入 pandas 数据框?
How to get this json data using Python and put into pandas dataframe?
我正在尝试使用 python 每 1 分钟获取一个 JSON 数据并将其放入 pandas 数据框。问题只是我第一次获取数据然后我收到错误(重试)。代码在这里:
import requests
import json
import pandas as pd
import time
exp_date = '13-04-2022'
headers_gen = {"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"}
def pcr(exp_date):
url_pcr = "https://www.indiainfoline.com/api/papi-call-api.php?url=%2FDerivative%2FDerivative.svc%2FGet-Put-Call-Ratio-version3%2Fidx%2Foi%2F" + exp_date + "%2Fall%2Fall%2Fsymbol%2FDesc%3Fresponsetype%3Djson"
req_pcr = requests.get(url_pcr, headers=headers_gen)
text_data_pcr= req_pcr.text
json_dict_pcr= json.loads(text_data_pcr)
df_pcr = pd.DataFrame.from_dict(json_dict_pcr['response']['data']['getputcallratioversion3list']['getputcallratioversion3'])
return df_pcr
while True:
try:
pcr = pcr(exp_date)
print(pcr)
print("All OK")
time.sleep(60)
except:
print("Retrying")
time.sleep(5)
可以通过放置单独的到期日期来更改我要下载数据的 URL,因此我创建了一个名为 exp_date 的变量。
谁能帮我指出我哪里出错了?
为了帮助找出 try/except 事物中的答案,请使用以下代码输出异常详细信息:
except Exception as e:
print("Retrying : {}".format(e))
time.sleep(5)
然后我明白了
Retrying : 'DataFrame' object is not callable
下一行是问题所在:
pcr = pcr(exp_date)
您已为函数和变量指定了同名。
我所做的就是将函数 pcr 更改为 PCR
def PCR(exp_date):
和行:
pcr = PCR(exp_date)
我正在尝试使用 python 每 1 分钟获取一个 JSON 数据并将其放入 pandas 数据框。问题只是我第一次获取数据然后我收到错误(重试)。代码在这里:
import requests
import json
import pandas as pd
import time
exp_date = '13-04-2022'
headers_gen = {"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.9",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"}
def pcr(exp_date):
url_pcr = "https://www.indiainfoline.com/api/papi-call-api.php?url=%2FDerivative%2FDerivative.svc%2FGet-Put-Call-Ratio-version3%2Fidx%2Foi%2F" + exp_date + "%2Fall%2Fall%2Fsymbol%2FDesc%3Fresponsetype%3Djson"
req_pcr = requests.get(url_pcr, headers=headers_gen)
text_data_pcr= req_pcr.text
json_dict_pcr= json.loads(text_data_pcr)
df_pcr = pd.DataFrame.from_dict(json_dict_pcr['response']['data']['getputcallratioversion3list']['getputcallratioversion3'])
return df_pcr
while True:
try:
pcr = pcr(exp_date)
print(pcr)
print("All OK")
time.sleep(60)
except:
print("Retrying")
time.sleep(5)
可以通过放置单独的到期日期来更改我要下载数据的 URL,因此我创建了一个名为 exp_date 的变量。
谁能帮我指出我哪里出错了?
为了帮助找出 try/except 事物中的答案,请使用以下代码输出异常详细信息:
except Exception as e:
print("Retrying : {}".format(e))
time.sleep(5)
然后我明白了
Retrying : 'DataFrame' object is not callable
下一行是问题所在:
pcr = pcr(exp_date)
您已为函数和变量指定了同名。
我所做的就是将函数 pcr 更改为 PCR
def PCR(exp_date):
和行:
pcr = PCR(exp_date)