Python到java的转换

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

我的原始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_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");