Python到java的转换
我的原始python脚本如下所示Python到java的转换,java,python-3.x,Java,Python 3.x,我的原始python脚本如下所示 #!/usr/bin/env python import math,sys import json import urllib def gsearch(searchfor): query = urllib.urlencode({'q': searchfor}) url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query search_respon
#!/usr/bin/env python
import math,sys
import json
import urllib
def gsearch(searchfor):
query = urllib.urlencode({'q': searchfor})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
search_response = urllib.urlopen(url)
search_results = search_response.read()
results = json.loads(search_results)
data = results['responseData']
return data
args = sys.argv[1:]
m = 45000000000
if len(args) != 2:
print "need two words as arguments"
exit
n0 = int(gsearch(args[0])['cursor']['estimatedResultCount'])
n1 = int(gsearch(args[1])['cursor']['estimatedResultCount'])
n2 = int(gsearch(args[0]+" "+args[1])['cursor']['estimatedResultCount'])
我正在将其转换为java。我已经完成了以下所有工作。我被困在这里search\u results=search\u response.read()results=json.load(search\u results)data=results['responseData']。我不知道如何将这3行代码转换成java
import java.io.*;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLEncoder;
import java.net.URLConnection;
public class gi {
public static void main (String[] args) {
if(args.length==2){
for(int i = 0; i < args.length; i++) {
System.out.println("I IS : "+i+":"+args[i]);
}
int n0 = searchGoogle(args[0]);
int n1 = searchGoogle(args[1]);
int n2 = searchGoogle(args[0]+" "+args[1]);
}
else{
System.out.println("Not enough arguement");
}
}
public static int searchGoogle(String searchQuery)
{
try{
String query=URLEncoder.encode(searchQuery, "UTF-8");
String url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s" + query;
URLConnection connection = new URL(url).openConnection();
}
catch(Exception e){
}
int pageQty=0;
return pageQty;
}
} // end of ReadString class
import java.io.*;
导入java.io.FileInputStream;
导入java.io.InputStream;
导入java.net.URL;
导入java.net.urlcoder;
导入java.net.URLConnection;
公共类gi{
公共静态void main(字符串[]args){
如果(参数长度==2){
对于(int i=0;i
您应该能够使用以下类似的方法来完成这项工作(这是源代码)
从
URLConnection
中获得BufferedReader
后,您可以:
拥有String对象后,可以将其传递到JSONObject构造函数中。(来自) 使用
org.json
库:
JSONObject jsonObj = new JSONObject(text);
现在您有了JSONObject,可以使用可用的方法提取所需的数据 例:
你能试着用jython来运行你的python代码而不是把它转换成java吗?我从来没有见过jython?我需要在稍后将其输入到其他java应用程序中的问题,这就是我转换并停留在这3行的原因。如果您希望从java环境运行python代码以实现与java的互操作性,可以使用jython。请参阅。我添加了这个URLConnection connection1=新URL(URL).openConnection();BufferedReader br=新的BufferedReader(新的InputStreamReader(connection1.getInputStream());但是我应该向JSONOBJECt发送什么呢?好的,我可以准备好结果,现在剩下的唯一挑战是查找“cursor”:{“resultCount”:“58800000”,“并最终获得resultCount值。我已更新了答案,以包含一种从URLConnection的BufferedReader获取字符串的方法。在将字符串传递到JSONObject构造函数之前,您可能必须对其进行格式化。是的,我按照您的方法获得了文本,文本中的内容部分是此“游标”:{“resultCount”:“58800000”,“我的最终目标是提取ResultCount的数值。有关从JSON对象提取数据的示例,请检查我们的答案:
StringBuilder builder = new StringBuilder();
String aux = "";
while ((aux = reader.readLine()) != null) {
builder.append(aux);
}
String text = builder.toString();
JSONObject jsonObj = new JSONObject(text);
JSONObject cursorObj = jsonObj.getJSONObject("cursor");
int resultCount = cursorObj.getInt("resultCount");