在 WRDS CRSP 查询中使用来自外部文件的 Python 字典值
Using Python dict values from external file in WRDS CRSP query
我想从外部文件(Python dict)中读取字典值(CRSP PERMNOS),并在一个函数中使用它们,该函数将 return 来自特定 table 的行].下面的代码改编自 WRDS Python 支持站点,与内联写入的 PERMNO 值配合使用效果很好。
def main():
parm = {'permnos': ('22074', '20482', '10049', '19641', '18980')}
data = db.raw_sql('SELECT date,permno,comnam,cusip FROM crsp.dseall WHERE permno in %(permnos)s', params=parm)
data.to_csv(r'cusip-result-2.csv')
print(data)
if __name__=="__main__":
main()
但是,我有 541 个 PERMNOS,我希望避免手动输入它们!
感谢任何提示或指点!
首先,将每个 permnos 写入一个名为 permnos.txt 的文件,格式如下:
22074
20482
...
18980
那么您可以进行以下操作:
def main():
parm = {'permnos': tuple([line for line in open('permnos.txt', 'r')])}
data = db.raw_sql('SELECT date,permno,comnam,cusip FROM crsp.dseall WHERE permno in %(permnos)s', params=parm)
data.to_csv(r'cusip-result-2.csv')
print(data)
if __name__=="__main__":
main()
我想从外部文件(Python dict)中读取字典值(CRSP PERMNOS),并在一个函数中使用它们,该函数将 return 来自特定 table 的行].下面的代码改编自 WRDS Python 支持站点,与内联写入的 PERMNO 值配合使用效果很好。
def main():
parm = {'permnos': ('22074', '20482', '10049', '19641', '18980')}
data = db.raw_sql('SELECT date,permno,comnam,cusip FROM crsp.dseall WHERE permno in %(permnos)s', params=parm)
data.to_csv(r'cusip-result-2.csv')
print(data)
if __name__=="__main__":
main()
但是,我有 541 个 PERMNOS,我希望避免手动输入它们!
感谢任何提示或指点!
首先,将每个 permnos 写入一个名为 permnos.txt 的文件,格式如下:
22074
20482
...
18980
那么您可以进行以下操作:
def main():
parm = {'permnos': tuple([line for line in open('permnos.txt', 'r')])}
data = db.raw_sql('SELECT date,permno,comnam,cusip FROM crsp.dseall WHERE permno in %(permnos)s', params=parm)
data.to_csv(r'cusip-result-2.csv')
print(data)
if __name__=="__main__":
main()