【发布时间】:2022-01-10 11:06:09
【问题描述】:
我正在尝试将来自 d 的传入数据保存在 postgres 数据库中,但它一直返回 listdata 没有属性数据,我不明白为什么 - 如果我没记错的话,只有一列需要正确保存?
如果你这样做print(d),你可以看到数据来了,但我不知道如何保存它。
from datetime import datetime
from requests import Session
import pandas as pd
import matplotlib.pyplot as plt
import psycopg2
import time
from psycopg2.extras import RealDictCursor
page_url = "https://www.nseindia.com/get-quotes/equity?symbol=LT"
chart_data_url = "https://www.nseindia.com/api/chart-databyindex"
s= Session()
h = {"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-GB,en-US;q=0.9,en;q=0.8",
}
s.headers.update(h)
r = s.get(page_url)
def fetch_data(symbol):
data = {"index": symbol + "EQN"}
r = s.get(chart_data_url, params=data)
data = r.json()['grapthData']
return [[datetime.utcfromtimestamp(d[0]/1000),d[1]] for d in data]
data = fetch_data("MARUTI")
with psycopg2.connect(
host="localhost",
database="tickdata",
port="5432",
user="postgres",
password="passkey",
cursor_factory=RealDictCursor,
) as conn:
with conn.cursor() as cur:
sql = """INSERT INTO pytick (sequence) VALUES (%s) RETURNING *"""
cur.executemany(sql, data)
返回此错误 cur.executemany(sql,数据) TypeError:字符串格式化期间并非所有参数都转换了 【1.8s完成】
【问题讨论】:
-
缩进看起来很奇怪(
d = fetch_data(...与returnstatement`...处于同一级别)并且缩进在Python中确实很重要。您能否提供正确的缩进? -
重新格式化检查一下
标签: python postgresql