0
我當前正在使用python 3.4,並且在運行我的代碼時出現錯誤10055。代碼如下。錯誤10055:填充數據庫時'沒有可用的緩衝區'
我試着把一個「time.sleep(10)」,它允許我的數據庫收集更多的條目,但最終我的程序總是得到錯誤。
我明白,當我「sock.close()」我的套接字,套接字並沒有真正關閉,它會在關閉之前持續一段時間,那是什麼導致我的錯誤。
我無法找到強制連接關閉的方法,以釋放套接字並運行程序完成。
我在我的代碼中有很多方法,但是這些都會與我的錯誤相關,如果你想要整個代碼,只是讓我知道。
from urllib.request import urlopen
import xml.etree.ElementTree as ET
import time
# Connect to MongoDB
def database_connection():
from pymongo import MongoClient
MONGODB_HOST = 'localhost'
MONGODB_PORT = 27017
DBS_NAME = 'SEC'
COLLECTION_NAME = 'Form15F'
connection = MongoClient(MONGODB_HOST, MONGODB_PORT)
collection = connection[DBS_NAME][COLLECTION_NAME]
return collection, connection
# Connection to the .XML online link
def connection(xml_link):
import socket
# Make xml_link readable so it can be manipulated
sock = urlopen(xml_link)
xml_readable = sock.read()
sock.close()
root = ET.fromstring(xml_readable)
return root
# Populate database
def database_addition(Holdings_FundName, Holdings_Name, Holdings_Shares, Holdings_Value, Holdings_Date):
for i in range(len(Holdings_Name)):
dictionary = {'Date':Holdings_Date[i] ,'Fund Name':Holdings_FundName[i],'Holding Company':Holdings_Name[i], 'Number of Shares':Holdings_Shares[i], 'Value of Shares':Holdings_Value[i]}
db, dbc = database_connection()
db.insert(dictionary)
dbc.close()
def main(link):
all_xml_docs = fund_listings(link)
for i in all_xml_docs:
Fund_Name, date, xml_link = fund_details(i)
print(Fund_Name)
print(xml_link)
Holdings_FundName, Holdings_Name, Holdings_Shares, Holdings_Value, Holdings_Date = holdings_attributes(xml_link, Fund_Name, date)
database = database_addition(Holdings_FundName, Holdings_Name, Holdings_Shares, Holdings_Value, Holdings_Date)
time.sleep(10)
我看到一些功能,但它們並不怎麼叫。 –