小编Nik*_*ntz的帖子

如何使用python,json和google地图反转地理编码服务器端?

我正在尝试服务器端反向地理编码,它可以让我得到一个json响应,现在我想从json响应中获得2或3个变量:

我想解析这个数据并以例如结束. administrative_area_level_1 = 'Stockholm'

jsondata = json.load(urllib2.urlopen('http://maps.googleapis.com/maps/api/geocode/json?latlng=59.3,18.1&sensor=false'))

这是我的获取json的python代码,现在我想知道如何解析它以获得json

  • administrative_area_level_1 long_name(即州或地区名称)
  • 地方长名称(即城市名称)
  • 了解如何解析我的json

我可以解析它,但并不总是以administrative_area_1的形式出现:

jsondata["results"][0]["address_components"][5]["long_name"]

上面的行正确输出"纽约"作为纽约的一个点,但对于斯德哥尔摩,它输出一个邮政城市,即Johanneshow,而不是administraive_area_1(地区/州).那么如何保证函数总是返回administrative_area_1,最好不要循环?

我希望它可以像以下一样工作,直接访问国家,地区和城市:

logging.info("country:"+str(jsondata["results"][9]["formatted_address"]))
logging.info("administrative_area_level_1:"+str(jsondata["results"][8]["formatted_address"]))
logging.info("locality:"+str(jsondata["results"][8]["formatted_address"]))
Run Code Online (Sandbox Code Playgroud)

提前致谢

更新

对于我预期的结果,这是一个很好的答案.在等待答案的同时,我也试着自己实现一个解决方案:

jsondata = json.load(urllib2.urlopen('http://maps.googleapis.com/maps/api/geocode/json?latlng='+str(ad.geopt.lat)+','+str(ad.geopt.lon)+'&sensor=false'))
logging.info("geography:"+str(jsondata["results"][1]["formatted_address"]))
region = None
city = None
for result in jsondata["results"]:
  #logging.info("result:"+str(result))
  for component in result["address_components"]:
    logging.info("components:"+str(component))
    logging.info("components type:"+str(component["types"]))
    if 'administrative_area_level_1' in component["types"]:
      #logging.info(unicode('found admin area:%s' % component["long_name"]))
      region = component["long_name"]
    if 'locality' in component["types"]:
      logging.info("found locality:"+str(component["long_name"]))
      city = component["long_name"]
Run Code Online (Sandbox Code Playgroud)

python reverse-geocoding google-maps-api-3

6
推荐指数
1
解决办法
3666
查看次数

如何在webapp2中决定cookie/headers/session的语言?

我想利用webapp2的新功能进行本地化,同时还具有特定于语言环境的时间和货币格式.

Django有一个很好的函数叫做get_language_from_request,我在完全迁移到webapp2之前使用了它,我现在使用webapp2中的i18n,我可以在用gettext编写的本地化之间切换,然后编译成我的app可以编写的名为messages.mo的文件阅读和显示.然后我确定并优先考虑以下方法来获取用户的语言:1.HTTP GET例如.hl = pt-br for Brazilian Portuguese 2. HTTP SESSION变量我调用i18n_language 3. Cookie我应该设置并获取但我不确切知道如何4.我可以得到HTTP标头这里我也不知道其中任何一个和我我正在寻找djnango如何get_language_from_request使用我以前使用的方便,现在我已经退出导入django,我仍然希望这个功能用于我现在基于webapp2的代码.

def get_language_from_request(self, request):
    """
    Analyzes the request to find what language the user wants the system to
    show. If the user requests a sublanguage where we have a main language, we send
    out the main language.
    """
    if self.request.get('hl'):
      self.session['i18n_language'] = self.request.get('hl')
      return self.request.get('hl')

    if self.session:
      lang_code = self.session.get('i18n_language', None)
      if lang_code:
        logging.info('language found in session')
        return lang_code

    lang_code = Cookies(self).get(LANGUAGE_COOKIE_NAME)
    if lang_code:
        logging.info('language found …
Run Code Online (Sandbox Code Playgroud)

python django google-app-engine internationalization webapp2

6
推荐指数
2
解决办法
4444
查看次数

任务队列中的状态405

我想解决在尝试生成报告时从任务队列中获取的状态405:

2012-02-16 03:56:53.012 /report/ 405 3ms 0kb AppEngine-Google; (+http://code.google.com/appengine)

2012-02-16 03:56:53.007 /createreport/ 302 20ms 0kb Mozilla/5.0 (X11; Linux x86_64; rv:2.0) Gecko/20100101 Firefox/4.0
I 2012-02-16 03:56:52.990 creating report task
Run Code Online (Sandbox Code Playgroud)

创建任务的代码是

class CreateReportHandler(webapp2.RequestHandler):

    def get(self):
        logging.info('creating report task')
        taskqueue.add(url=r'/report/')
        self.redirect('/')
Run Code Online (Sandbox Code Playgroud)

我用webapp2路由它:

Route(r'/createreport/', handler=CreateReportHandler, name='createreport'),
Run Code Online (Sandbox Code Playgroud)

那么我应该能够把它作为一个cron工作,但是当我测试它时,我从这段代码的访问中获得了405,如果我尝试直接运行它会超时:

class Report(webapp2.RequestHandler):

    def get(self):
        # Create a conversion request from HTML to PDF.
        users = User.query()
        today = date.today()
        startdate = date(today.year, today.month, 1) # first day of month   
        html = None     
        for user in users: 
            if …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine python-2.7 google-cloud-datastore

6
推荐指数
1
解决办法
1263
查看次数

从hg存储库中删除二进制文件

Mercurial是否可以删除具有certaain扩展名的所有文件?我做了一个addremove,然后我的所有二进制.pyc都被版本化了,现在我在版本控制时得到了这个限制:

tool kdiff3 can't handle binary
tool docdiff can't handle binary
 no tool found to merge bnano-www/wtforms/widgets.pyc
keep (l)ocal or take (o)ther? o
19 files updated, 67 files merged, 0 files removed, 0 files unresolved

C:\Users\developer\bnano\bnano-www>
Run Code Online (Sandbox Code Playgroud)

我真的不知道这意味着什么,除了我可以按o为其他人继续我的工作.现在我想清理我的存储库,最佳的是能够在没有添加二进制文件的情况下执行addremove,但我认为这是不可能的.

在这种情况下,您能给出一些建议吗?

谢谢

version-control mercurial binaryfiles

6
推荐指数
1
解决办法
1622
查看次数

如何在C中复制矩阵?

我正在尝试编写应该复制矩阵的函数matricopy,但编译器抱怨:

/* minmatrix.c - test rows and columns of a matrix
 * Copyright abandoned. This file is in the public domain. */

#include <stdio.h>
#define ROWCOUNT (3)
#define COLUMNCOUNT (4)

int imat[ ROWCOUNT ][ COLUMNCOUNT ]; 
char cmat[ ROWCOUNT ][ COLUMNCOUNT ];
double dmat[ ROWCOUNT ][ COLUMNCOUNT ];
int rmat[ ROWCOUNT ][ COLUMNCOUNT ]; 

void matriscopy (int * destmat, int * srcmat, int rowcount, int columncount) 
{
  int i, j;
  for (i=0; i<rowcount; i=i+1) /* rad-nr */
    for (j=0; j<columncount; …
Run Code Online (Sandbox Code Playgroud)

c pointers matrix

6
推荐指数
1
解决办法
1万
查看次数

如何理解Java泛型的这种用法

在我的学习书中,有这个例子:

import java.util.*;
public class RentalGeneric<T> {

  private List<T> rentalPool;

  private int maxNum;
  public RentalGeneric(int maxNum, List<T> rentalPool) {

  this.maxNum = maxNum;
  this.rentalPool = rentalPool;
}
public T getRental() {
  return rentalPool.get(0);
}
  public void returnRental(T returnedThing) {
    rentalPool.add(returnedThing);
  }
}
Run Code Online (Sandbox Code Playgroud)

我发现编译很奇怪,因为没有定义Class<T>.关于这个的故事是什么?它在我的书中说的T是类型参数,但我怎么知道何时使用它?

java generics

6
推荐指数
1
解决办法
98
查看次数

为什么操作系统的某些部分必须用汇编语言编写?

我的迷你操作系统的调度程序是用汇编编写的,我想知道为什么.我发现eretC编译器无法生成指令,这可以推广到除Nios以及x86和/或MIPS架构之外的其他平台吗?因为我认为os的一部分总是用汇编语言编写而我正在寻找系统程序员为什么必须知道汇编才能编写操作系统.是否存在C编译器的内置限制,无法生成某些汇编指令,例如eret将程序返回到中断后正在执行的操作?

c assembly operating-system interrupt nios

6
推荐指数
1
解决办法
1156
查看次数

无法理解符号:*和**带指针

我的指针有问题.我知道这是做什么的:

*name
Run Code Online (Sandbox Code Playgroud)

我明白这是一个指针.

我一直在寻找,但我不明白这个人做了什么,也没有找到有用的信息

**name
Run Code Online (Sandbox Code Playgroud)

上下文是int**名称,而不是乘法

有人能帮助我吗?

c++ pointers dereference pointer-to-pointer

6
推荐指数
3
解决办法
312
查看次数

为第一个元素创建顶部边距的好方法

我有我用呈现的列表,它需要在第一个元素的顶部一些边距。我查看了 CSS 代码,我看到了margin-top:0!important,我可以为第一个元素覆盖它margin-top:10px!important;,然后渲染看起来不错。有没有更好的方法来实现它?我的代码(没有修复)是

<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
  <ul class="nav nav-tabs">
    <li class="nav active"><a href="#A" data-toggle="tab">All</a>
    </li>
    <li class="nav"><a href="#B" data-toggle="tab">Company</a>
    </li>
    <li class="nav"><a href="#C" data-toggle="tab">Private</a>
    </li>
  </ul>
  <!-- Tab panes -->
  <div class="tab-content">
    <div class="tab-pane fade in active" id="A">
      <div class="ui divided items">
        <div class="item">
          <div class="ui left floated">
            7 July.
            <br>3:33
          </div>
          <div class="image">
            <a href="/vi/5022701123010560.html">
              <img src="http://lh3.googleusercontent.com/JZkr-b_aWlYrFG1G-EUywZgucJE3JV1wgz4yQGrx-bGaw_va7dymsaTMXhK5t6ZkUdjWLeHlNaiksVNAMp8I1epB-Q=s150" title="Wordpress development company, website developer" alt="Wordpress …
Run Code Online (Sandbox Code Playgroud)

html css semantic-ui

6
推荐指数
1
解决办法
1万
查看次数

我的taglib声明放在哪里?

我有一个JSP,我将开始使用JSTL taglib.所以我需要声明它并且我在行中执行它

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Run Code Online (Sandbox Code Playgroud)

但是我在哪里放这个代码?在文件的顶部,在所有内容之前,还是在导入之后?有关系吗?

jsp jstl

5
推荐指数
1
解决办法
3772
查看次数