因此,我有一个简单的线程,它执行一个http请求,返回一个json对象,我想使用json.loads将其放入一个dict中,该dict通过传递对所述dict的引用来指定
def thr_get_json(host, port, path, result):
conn = httplib.HTTPConnection(host, port)
conn.request('GET', path)
resp = conn.getresponse()
if resp.status != 200:
raise "HTTP Error!"
result = json.loads(resp.read())
results = {}
get_thread = threading.Thread(target=thr_get_json, args=('example.com', 80, '/output.php', results))
由于某些原因,结果是空的。因为它是一个传递给函数的可变对象,所以它应该是一个引用,对吗?还是我在这件事上走得太远了
您还需要传递一个键,或定义一个用于存储结果的键:
在函数内部,将数据附加到dict: 结果['responseData']=json.load(resp.read())
在线程执行后,您可以使用results['responseData']访问结果
您必须使用result.update()
你只是重写了结果,它是一个不同的变量
(注意您同时使用结果(单数)和结果)
相关问题 更多 >
编程相关推荐