{"id":701,"date":"2009-08-15T14:53:25","date_gmt":"2009-08-15T06:53:25","guid":{"rendered":"http:\/\/www.impjq.net\/blog\/2009\/08\/15\/google-translate-python%e8%84%9a%e6%9c%ac\/"},"modified":"2018-12-07T23:26:07","modified_gmt":"2018-12-07T15:26:07","slug":"google-translate-python%e8%84%9a%e6%9c%ac","status":"publish","type":"post","link":"https:\/\/pjq.me\/?p=701","title":{"rendered":"Google translate python\u811a\u672c"},"content":{"rendered":"<p>\u5b66\u4e60python,\u5199\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u811a\u672c\uff0c\u5229\u7528google\u7ffb\u8bd1API\uff0c\u7b80\u5355\u7684\u5b9e\u73b0\u4ece\u82f1\u6587\u7ffb\u8bd1\u5230\u4e2d\u6587<br \/>\n\u4e4b\u524d\u8fd8\u4e86\u4e00\u4e2a<a href=\"http:\/\/www.impjq.net\/blog\/2009\/06\/04\/androidgoogle-%e7%bf%bb%e8%af%91%e5%89%8d%e7%ab%af\/\">Android\u7248\u7684\u7ffb\u8bd1\u524d\u7aef<\/a>\u3002<\/p>\n<p><!--more--><\/p>\n<p>\u8f93\u5165q\u9000\u51fa\u3002<\/p>\n<pre lang=\"python\" line=\"1\">\n#!\/usr\/bin\/env python\n# -*- coding: utf-8 -*-\n\n# filename:\n# author:pengjianqing&lt;AT&gt;gmail.com\n\nimport urllib\nimport urllib2\nimport sys\nimport simplejson\nfrom optparse import OptionParser\n\nURL = \"http:\/\/ajax.googleapis.com\/ajax\/services\/language\/translate?v=1.0&q=%s&langpair=%s%%7C%s\"\n\nparser = OptionParser()\nparser.add_option(\"-f\", \"--from\", dest=\"lang1\",\n        help=\"The language code to translate from\", default=\"en\")\nparser.add_option(\"-t\", \"--to\", dest=\"lang2\",\n        help=\"The language code to translate to\", default=\"zh\")\n\n(options, args) = parser.parse_args()\n\ndef tran(text='hello'):\n    print text\n    print \"Translating '%s' from %s to %s\" % (text, options.lang1, options.lang2)\n    query = (URL % (urllib.quote(text), options.lang1, options.lang2))\n    req = urllib2.Request(query)\n    req.add_header(\"Referer\", \"http:\/\/blog.impjq.net\")\n    r = urllib2.urlopen(req)\n    data = r.read()\n    return data\n    #print data\n\n\n\ntext = raw_input('Input(q:to exit):')\n\nwhile text != 'q':\n    data = tran(text)\n    if simplejson.loads(data).__getitem__('responseStatus').__str__().__contains__('200'):\n        print 'Translate success'\n        responseData = simplejson.loads(data).__getitem__('responseData')\n        print text+':'+responseData['translatedText']\n\n    else:\n        print 'Translate failed'\n\n    text = raw_input('Input(q:to exit):')\nelse:\n    print 'q to exit'\n<\/pre>\n<p>\u6253\u5370\u5404\u4e2a\u51fd\u6570\u8bf4\u660e\u6587\u6863\uff1a<\/p>\n<pre lang=\"python\" line=\"1\">\ndef info(object, spacing=10, collapse=1):\n    \"\"\"Print methods and doc strings.\n\n    Takes module, class, list, dictionary, or string.\"\"\"\n    methodList = [method for method in dir(object) if callable(getattr(object, method))]\n    processFunc = collapse and (lambda s: \" \".join(s.split())) or (lambda s: s)\n    print \"\\n\".join([\"%s-&gt; %s\" %\n                      (method.ljust(spacing),\n                       processFunc(str(getattr(object, method).__doc__)))\n                     for method in methodList])\n    print \"\\n\".join(['%s %s'%(method.ljust(spacing),\" \".join((str(getattr(object, method).__doc__)).split())) for method in methodList])\n\ninfo(sys,20)\n\n<\/pre>\n<p>\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre lang=\"code\" line=\"1\">\n__displayhook__     -&gt; displayhook(object) -&gt; None Print an object to sys.stdout and also save it in __builtin__.\n__excepthook__      -&gt; excepthook(exctype, value, traceback) -&gt; None Handle an exception by displaying it with a traceback on sys.stderr.\n_current_frames     -&gt; _current_frames() -&gt; dictionary Return a dictionary mapping each current thread T's thread id to T's current stack frame. This function should be used for specialized purposes only.\n_getframe           -&gt; _getframe([depth]) -&gt; frameobject Return a frame object from the call stack. If optional integer depth is given, return the frame object that many calls below the top of the stack. If that is deeper than the call stack, ValueError is raised. The default for depth is zero, returning the frame at the top of the call stack. This function should be used for internal and specialized purposes only.\ncall_tracing        -&gt; call_tracing(func, args) -&gt; object Call func(*args), while tracing is enabled. The tracing state is saved, and restored afterwards. This is intended to be called from a debugger from a checkpoint, to recursively debug some other code.\ncallstats           -&gt; callstats() -&gt; tuple of integers Return a tuple of function call statistics, if CALL_PROFILE was defined when Python was built. Otherwise, return None. When enabled, this function returns detailed, implementation-specific details about the number of function calls executed. The return value is a 11-tuple where the entries in the tuple are counts of: 0. all function calls 1. calls to PyFunction_Type objects 2. PyFunction calls that do not create an argument tuple 3. PyFunction calls that do not create an argument tuple and bypass PyEval_EvalCodeEx() 4. PyMethod calls 5. PyMethod calls on bound methods 6. PyType calls 7. PyCFunction calls 8. generator calls 9. All other calls 10. Number of stack pops performed by call_function()\ndisplayhook         -&gt; displayhook(object) -&gt; None Print an object to sys.stdout and also save it in __builtin__.\nexc_clear           -&gt; exc_clear() -&gt; None Clear global information on the current exception. Subsequent calls to exc_info() will return (None,None,None) until another exception is raised in the current thread or the execution stack returns to a frame where another exception is being handled.\nexc_info            -&gt; exc_info() -&gt; (type, value, traceback) Return information about the most recent exception caught by an except clause in the current stack frame or in an older stack frame.\nexc_type            -&gt; None\nexcepthook          -&gt; excepthook(exctype, value, traceback) -&gt; None Handle an exception by displaying it with a traceback on sys.stderr.\nexit                -&gt; exit([status]) Exit the interpreter by raising SystemExit(status). If the status is omitted or None, it defaults to zero (i.e., success). If the status is numeric, it will be used as the system exit status. If it is another kind of object, it will be printed and the system exit status will be one (i.e., failure).\ngetcheckinterval    -&gt; getcheckinterval() -&gt; current check interval; see setcheckinterval().\ngetdefaultencoding  -&gt; getdefaultencoding() -&gt; string Return the current default string encoding used by the Unicode implementation.\ngetdlopenflags      -&gt; getdlopenflags() -&gt; int Return the current value of the flags that are used for dlopen() calls. The flag constants are defined in the dl module.\ngetfilesystemencoding-&gt; getfilesystemencoding() -&gt; string Return the encoding used to convert Unicode filenames in operating system filenames.\ngetrecursionlimit   -&gt; getrecursionlimit() Return the current value of the recursion limit, the maximum depth of the Python interpreter stack. This limit prevents infinite recursion from causing an overflow of the C stack and crashing Python.\ngetrefcount         -&gt; getrefcount(object) -&gt; integer Return the reference count of object. The count returned is generally one higher than you might expect, because it includes the (temporary) reference as an argument to getrefcount().\nsetcheckinterval    -&gt; setcheckinterval(n) Tell the Python interpreter to check for asynchronous events every n instructions. This also affects how often thread switches occur.\nsetdlopenflags      -&gt; setdlopenflags(n) -&gt; None Set the flags that will be used for dlopen() calls. Among other things, this will enable a lazy resolving of symbols when importing a module, if called as sys.setdlopenflags(0) To share symbols across extension modules, call as sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)\nsetprofile          -&gt; setprofile(function) Set the profiling function. It will be called on each function call and return. See the profiler chapter in the library manual.\nsetrecursionlimit   -&gt; setrecursionlimit(n) Set the maximum depth of the Python interpreter stack to n. This limit prevents infinite recursion from causing an overflow of the C stack and crashing Python. The highest possible limit is platform- dependent.\nsettrace            -&gt; settrace(function) Set the global debug tracing function. It will be called on each function call. See the debugger chapter in the library manual.\n__displayhook__      displayhook(object) -&gt; None Print an object to sys.stdout and also save it in __builtin__.\n__excepthook__       excepthook(exctype, value, traceback) -&gt; None Handle an exception by displaying it with a traceback on sys.stderr.\n_current_frames      _current_frames() -&gt; dictionary Return a dictionary mapping each current thread T's thread id to T's current stack frame. This function should be used for specialized purposes only.\n_getframe            _getframe([depth]) -&gt; frameobject Return a frame object from the call stack. If optional integer depth is given, return the frame object that many calls below the top of the stack. If that is deeper than the call stack, ValueError is raised. The default for depth is zero, returning the frame at the top of the call stack. This function should be used for internal and specialized purposes only.\ncall_tracing         call_tracing(func, args) -&gt; object Call func(*args), while tracing is enabled. The tracing state is saved, and restored afterwards. This is intended to be called from a debugger from a checkpoint, to recursively debug some other code.\ncallstats            callstats() -&gt; tuple of integers Return a tuple of function call statistics, if CALL_PROFILE was defined when Python was built. Otherwise, return None. When enabled, this function returns detailed, implementation-specific details about the number of function calls executed. The return value is a 11-tuple where the entries in the tuple are counts of: 0. all function calls 1. calls to PyFunction_Type objects 2. PyFunction calls that do not create an argument tuple 3. PyFunction calls that do not create an argument tuple and bypass PyEval_EvalCodeEx() 4. PyMethod calls 5. PyMethod calls on bound methods 6. PyType calls 7. PyCFunction calls 8. generator calls 9. All other calls 10. Number of stack pops performed by call_function()\ndisplayhook          displayhook(object) -&gt; None Print an object to sys.stdout and also save it in __builtin__.\nexc_clear            exc_clear() -&gt; None Clear global information on the current exception. Subsequent calls to exc_info() will return (None,None,None) until another exception is raised in the current thread or the execution stack returns to a frame where another exception is being handled.\nexc_info             exc_info() -&gt; (type, value, traceback) Return information about the most recent exception caught by an except clause in the current stack frame or in an older stack frame.\nexc_type             None\nexcepthook           excepthook(exctype, value, traceback) -&gt; None Handle an exception by displaying it with a traceback on sys.stderr.\nexit                 exit([status]) Exit the interpreter by raising SystemExit(status). If the status is omitted or None, it defaults to zero (i.e., success). If the status is numeric, it will be used as the system exit status. If it is another kind of object, it will be printed and the system exit status will be one (i.e., failure).\ngetcheckinterval     getcheckinterval() -&gt; current check interval; see setcheckinterval().\ngetdefaultencoding   getdefaultencoding() -&gt; string Return the current default string encoding used by the Unicode implementation.\ngetdlopenflags       getdlopenflags() -&gt; int Return the current value of the flags that are used for dlopen() calls. The flag constants are defined in the dl module.\ngetfilesystemencoding getfilesystemencoding() -&gt; string Return the encoding used to convert Unicode filenames in operating system filenames.\ngetrecursionlimit    getrecursionlimit() Return the current value of the recursion limit, the maximum depth of the Python interpreter stack. This limit prevents infinite recursion from causing an overflow of the C stack and crashing Python.\ngetrefcount          getrefcount(object) -&gt; integer Return the reference count of object. The count returned is generally one higher than you might expect, because it includes the (temporary) reference as an argument to getrefcount().\nsetcheckinterval     setcheckinterval(n) Tell the Python interpreter to check for asynchronous events every n instructions. This also affects how often thread switches occur.\nsetdlopenflags       setdlopenflags(n) -&gt; None Set the flags that will be used for dlopen() calls. Among other things, this will enable a lazy resolving of symbols when importing a module, if called as sys.setdlopenflags(0) To share symbols across extension modules, call as sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)\nsetprofile           setprofile(function) Set the profiling function. It will be called on each function call and return. See the profiler chapter in the library manual.\nsetrecursionlimit    setrecursionlimit(n) Set the maximum depth of the Python interpreter stack to n. This limit prevents infinite recursion from causing an overflow of the C stack and crashing Python. The highest possible limit is platform- dependent.\nsettrace             settrace(function) Set the global debug tracing function. It will be called on each function call. See the debugger chapter in the library manual.\n\n<\/pre>\n<div class=\"zemanta-pixie\"><img decoding=\"async\" class=\"zemanta-pixie-img\" alt=\"\" src=\"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd\" \/><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5b66\u4e60python,\u5199\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u811a\u672c\uff0c\u5229\u7528google\u7ffb\u8bd1API\uff0c\u7b80\u5355\u7684\u5b9e\u73b0\u4ece\u82f1\u6587\u7ffb\u8bd1\u5230\u4e2d\u6587 \u4e4b\u524d\u8fd8\u4e86\u4e00\u4e2aAndroid\u7248\u7684\u7ffb\u8bd1\u524d\u7aef\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[169],"tags":[],"class_list":["post-701","post","type-post","status-publish","format-standard","hentry","category-tech"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Google translate python\u811a\u672c - Jianqing&#039;s Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pjq.me\/?p=701\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google translate python\u811a\u672c - Jianqing&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"\u5b66\u4e60python,\u5199\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u811a\u672c\uff0c\u5229\u7528google\u7ffb\u8bd1API\uff0c\u7b80\u5355\u7684\u5b9e\u73b0\u4ece\u82f1\u6587\u7ffb\u8bd1\u5230\u4e2d\u6587 \u4e4b\u524d\u8fd8\u4e86\u4e00\u4e2aAndroid\u7248\u7684\u7ffb\u8bd1\u524d\u7aef\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pjq.me\/?p=701\" \/>\n<meta property=\"og:site_name\" content=\"Jianqing&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2009-08-15T06:53:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-07T15:26:07+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd\" \/>\n<meta name=\"author\" content=\"pengjianqing\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pengjianqing\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/pjq.me\/?p=701#article\",\"isPartOf\":{\"@id\":\"https:\/\/pjq.me\/?p=701\"},\"author\":{\"name\":\"pengjianqing\",\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"headline\":\"Google translate python\u811a\u672c\",\"datePublished\":\"2009-08-15T06:53:25+00:00\",\"dateModified\":\"2018-12-07T15:26:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/pjq.me\/?p=701\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"image\":{\"@id\":\"https:\/\/pjq.me\/?p=701#primaryimage\"},\"thumbnailUrl\":\"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd\",\"articleSection\":[\"Tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/pjq.me\/?p=701#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/pjq.me\/?p=701\",\"url\":\"https:\/\/pjq.me\/?p=701\",\"name\":\"Google translate python\u811a\u672c - Jianqing&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\/\/pjq.me\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/pjq.me\/?p=701#primaryimage\"},\"image\":{\"@id\":\"https:\/\/pjq.me\/?p=701#primaryimage\"},\"thumbnailUrl\":\"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd\",\"datePublished\":\"2009-08-15T06:53:25+00:00\",\"dateModified\":\"2018-12-07T15:26:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/pjq.me\/?p=701#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pjq.me\/?p=701\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pjq.me\/?p=701#primaryimage\",\"url\":\"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd\",\"contentUrl\":\"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pjq.me\/?p=701#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pjq.me\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google translate python\u811a\u672c\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/pjq.me\/#website\",\"url\":\"https:\/\/pjq.me\/\",\"name\":\"Jianqing&#039;s Blog\",\"description\":\"Thoughts and Future\",\"publisher\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/pjq.me\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\",\"name\":\"pengjianqing\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png\",\"contentUrl\":\"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png\",\"width\":460,\"height\":752,\"caption\":\"pengjianqing\"},\"logo\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/pjq.me\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Google translate python\u811a\u672c - Jianqing&#039;s Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pjq.me\/?p=701","og_locale":"en_US","og_type":"article","og_title":"Google translate python\u811a\u672c - Jianqing&#039;s Blog","og_description":"\u5b66\u4e60python,\u5199\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u811a\u672c\uff0c\u5229\u7528google\u7ffb\u8bd1API\uff0c\u7b80\u5355\u7684\u5b9e\u73b0\u4ece\u82f1\u6587\u7ffb\u8bd1\u5230\u4e2d\u6587 \u4e4b\u524d\u8fd8\u4e86\u4e00\u4e2aAndroid\u7248\u7684\u7ffb\u8bd1\u524d\u7aef\u3002","og_url":"https:\/\/pjq.me\/?p=701","og_site_name":"Jianqing&#039;s Blog","article_published_time":"2009-08-15T06:53:25+00:00","article_modified_time":"2018-12-07T15:26:07+00:00","og_image":[{"url":"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd","type":"","width":"","height":""}],"author":"pengjianqing","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pengjianqing","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pjq.me\/?p=701#article","isPartOf":{"@id":"https:\/\/pjq.me\/?p=701"},"author":{"name":"pengjianqing","@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"headline":"Google translate python\u811a\u672c","datePublished":"2009-08-15T06:53:25+00:00","dateModified":"2018-12-07T15:26:07+00:00","mainEntityOfPage":{"@id":"https:\/\/pjq.me\/?p=701"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"image":{"@id":"https:\/\/pjq.me\/?p=701#primaryimage"},"thumbnailUrl":"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd","articleSection":["Tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pjq.me\/?p=701#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pjq.me\/?p=701","url":"https:\/\/pjq.me\/?p=701","name":"Google translate python\u811a\u672c - Jianqing&#039;s Blog","isPartOf":{"@id":"https:\/\/pjq.me\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pjq.me\/?p=701#primaryimage"},"image":{"@id":"https:\/\/pjq.me\/?p=701#primaryimage"},"thumbnailUrl":"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd","datePublished":"2009-08-15T06:53:25+00:00","dateModified":"2018-12-07T15:26:07+00:00","breadcrumb":{"@id":"https:\/\/pjq.me\/?p=701#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pjq.me\/?p=701"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pjq.me\/?p=701#primaryimage","url":"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd","contentUrl":"http:\/\/img.zemanta.com\/pixy.gif?x-id=2afb60ac-3275-8bfe-a024-9aee5d10e4dd"},{"@type":"BreadcrumbList","@id":"https:\/\/pjq.me\/?p=701#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pjq.me\/"},{"@type":"ListItem","position":2,"name":"Google translate python\u811a\u672c"}]},{"@type":"WebSite","@id":"https:\/\/pjq.me\/#website","url":"https:\/\/pjq.me\/","name":"Jianqing&#039;s Blog","description":"Thoughts and Future","publisher":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pjq.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60","name":"pengjianqing","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pjq.me\/#\/schema\/person\/image\/","url":"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png","contentUrl":"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png","width":460,"height":752,"caption":"pengjianqing"},"logo":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/image\/"},"url":"https:\/\/pjq.me\/?author=1"}]}},"views":3609,"_links":{"self":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=701"}],"version-history":[{"count":0,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/701\/revisions"}],"wp:attachment":[{"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}