剥离和格式化坐标对

时间:2018-10-08 02:51:37

标签: python json geojson

我有一个坐标数组const bool DEBUG = false,我想将其转换为字符串格式

test

预期输出是

print(test)
[[[-122.45939656328747, 37.796690447896445], [-122.45859061899071, 37.785810199890264], [-122.44198816647757, 37.786535549757346], [-122.43578239539256, 37.789920515803715], [-122.42828711343275, 37.77444638530603]]]

以下代码仅删除了外部括号,如何使用python删除内部括号并在坐标对之间放置一个管道(“ |”)?

 "-122.45939656328747, 37.796690447896445 | 122.45859061899071, 37.785810199890264 | -122.44198816647757, 37.786535549757346 | -122.43578239539256, 37.789920515803715 | 
-122.42828711343275, 37.77444638530603"

2 个答案:

答案 0 :(得分:2)

由于在您的问题中外括号似乎并不重要,所以我用test[0]将其删除了,以下代码应提供您想要的内容。

result = [str(coor).strip('[]') for coor in test[0]]
result = " | ".join(result)

答案 1 :(得分:0)

好吧,看来您有一个包含一个项目的列表,而该项目是一个列表列表。有点奇怪,但还可以。第一步将是提取列表列表,这很容易,只需将索引设为零即可。然后,我要做的是使每个内部列表都成为一个字符串,(而不是像上面那样将整个对象都转换为字符串),并在大列表上使用join,如下所示:

Vue.component('tabs', {
  props: ['tabs'],
  template: `
  <section class="tabs">
      <nav class="tabs-nav">
          <ul class="tabs-list">
              <li v-for="item in tabs" :key="item" class="tabs-listitem">
                  <a class="tabs-trigger">{{item.title}}</a>
              </li>
          </ul>
      </nav>
      <div class="tabs-body">
          <article v-for="item in tabs" v-html="item.content" :key="item"></article>
      </div>
  </section>`
})

var app = new Vue({
  el: '#app',
  data () {
    return {
      tabs: [
        {
          title: 'Tab 1',
          content: '<h1>Tab 1 Content</h1>'
        },
        {
          title: 'Tab 2',
          content: '<h1>Tab 2 Content</h1>'
        },
        {
          title: 'Tab 3',
          content: '<h1>Tab 3 Content</h1>'
        }
      ]
    }
  }
})

编辑:意识到上面的答案将导致每对在其周围都有括号,我想您不希望这样做。只需删除第一个和最后一个字符即可轻松解决:

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<div id="app">
  <tabs :tabs="tabs"></tabs>
</div>