服务器python上出现psycopg2编程错误,但Mac python上没有
我有一个python脚本,它使用psycopg2进行一些SQL查询。在我的mac上本地测试时,一切正常。在服务器(预期目标)上运行脚本时,我从psycopg2得到一个错误: .local/lib/python2.7/site packages/psycopg2-2.5.4-py2.7-linux-x86_64.egg/psycopg2/extras.py”,执行中的第120行 返回super(DictCursor,self).execute(query,vars) psycopg2.ProgrammingError:位于或接近“0”的语法错误 第4行:…ice)结束(按时间顺序描述0到0之间的行) 该查询在pgadmin和我的本地计算机上运行完全正常。在所有情况下,我都使用python 2.7。以下是问题脚本:服务器python上出现psycopg2编程错误,但Mac python上没有,python,macos,python-2.7,psycopg2,Python,Macos,Python 2.7,Psycopg2,我有一个python脚本,它使用psycopg2进行一些SQL查询。在我的mac上本地测试时,一切正常。在服务器(预期目标)上运行脚本时,我从psycopg2得到一个错误: .local/lib/python2.7/site packages/psycopg2-2.5.4-py2.7-linux-x86_64.egg/psycopg2/extras.py”,执行中的第120行 返回super(DictCursor,self).execute(query,vars) psycopg2.Progra
def chart_files_price_movavg(itemname, hostname, port, dbname, username, pw):
"itemname, db credentials"
#creates a csv with average price per day with headers
query = ("""SELECT time_series,
avg_price AS daily_price,
CASE WHEN row_number() OVER (ORDER BY time_series) > 7
THEN avg(avg_price) OVER (ORDER BY time_series DESC ROWS BETWEEN 0 FOLLOWING AND 6 FOLLOWING)
ELSE NULL
END AS avg_price
FROM
(SELECT to_char(closing_date, 'YYYY/MM/DD') AS time_series, SUM(price) / COUNT(itemname) AS avg_price
FROM auction_prices
WHERE itemname = 'iphone6_16gb' AND price < 1000
GROUP BY time_series)
AS foo""") % locals()
filename = itemname + '_price_movavg.csv'
filepath = '/home5/easypea9/public_html/downloads/' + filename
#filepath = '/Users/Ali Mac Pro/Google Drive/Auto-Stock-Analysis/Python/Web Scraping/eBay/chartdata/' + filename
copy_select(query, filepath, hostname, port, dbname, username, pw)
PostgreSQL server是什么版本?9.0中添加了
以下的语法。比较和服务器上的.8.4.20版本和本地9.4版本可能是问题的根源。因此,PostgreSQL server主机只需向升级到9.4版收取300美元,因此我现在正在寻找有关转换SQL查询的帮助,因此我现在正在寻找有关转换SQL查询的帮助t与版本8兼容。我一开始写这个查询就已经超出了我的舒适区!所以真的很感激你有什么想法吗?我建议你升级到9.4。这很难(如果不是不可能的话)使用8.4进行移动平均值计算,这就是他们在
语法之后添加之前
/的全部原因。您可以尝试发布一个单独的问题。或者,您可以尝试在Python中实现移动平均值,但这超出了本问题的范围。
def copy_select(query, filename, hostname, port, dbname, user, password):
'query, outputfile, hostname, port, dbname, user, password'
#global cur
try:
connection = psycopg2.connect(
database=dbname,
user=user,
host=hostname,
password=password)
connection.autocommit = True
cur = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
except:
print 'database connection FAIL'
ticquery = datetime.now()
cur.execute(query)
rows = cur.fetchall()
tocquery = datetime.now()
querytime = tocquery - ticquery
#write the csv
openfile = open(filename, 'wb')
csvwriter = csv.writer(openfile)
csvwriter.writerows(rows)
openfile.close()
return rows