所以我将来自url的JSON数据转换为字符串,然后将其写入文本文件。这是我目前的Python脚本(我使用的是Python 2.7.6):
import json
import urllib
import time
startTime = time.time()
url = "http://someurl..."
success = False
while (True):
try:
txt = urllib.urlopen(url).read()
print " -> open URL time: %.3f" % (time.time() - startTime)
secondTime = time.time()
textFile = open('data.txt', 'w')
textFile.write("JSON Data (")
textFile.write(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
textFile.write("):\n")
textFile.write(txt)
textFile.close()
print " -> write file time: %.3f" % (time.time() - secondTime)
thirdTime = time.time()
success = True
break
except ValueError as valueErr:
print "Error:", err
except IOError as ioError:
print "Error: Internet connection issues."
break
if (success):
print " -> data.txt created()."
print " -> Finished."
print " -> Total Elapsed Time = %.3f" % (time.time() - startTime), "seconds."
else:
print " -> Finished."
,输出如下(我在Windows命令提示符下运行,而不是Python提示符):
'getCryptsyData.py' executing...
-> open URL time: 4.864
-> data.txt created().
-> write file time: 0.005
-> Finished.
-> Total Elapsed Time = 4.939 seconds.
我的问题是,有没有更快的方法呢?即使用不同的python脚本或其他脚本语言或在C?
编辑1:更新的代码并输出到我正在运行的当前脚本。
答案 0 :(得分:1)
您正在从txt加载json。为什么不跳过它,只是将响应txt写入文件?
您的示例可以跳过json load / dump,并且基本上可以重写为:
txt = urllib.urlopen(url).read()
with open('data.txt', 'w') as f:
f.write(txt)
一些风格提示:
答案 1 :(得分:1)
由于大部分时间都花在等待外部服务器响应上,因此您可能无法通过更改代码获得任何收益。根据此代码的使用方式,您可以通过以下方式改善整体体验: