【问题标题】:Python - Split list of coordinates from one big String [closed]Python - 从一个大字符串中拆分坐标列表[关闭]
【发布时间】:2017-07-10 00:08:28
【问题描述】:

我有一个包含列表列表的 .txt 文件,每个列表都是一组坐标:

[[151.22999572753906, -33.84008789062494], [..., ...],... [..,..]]

我想知道如何将这个文件作为一个数组而不是一个字符串来读取,这样我就可以轻松提取我需要的所有坐标。

到目前为止我的代码:

import re

d = '[[151.22999572753906, -33.84008789062494], [151.22999572753906, -33.84008789062494][151.22999572753906, -33.84008789062494]]'
##l = re.split('[\[\]]', d)
l = re.split('\]\[', d)
print(l)

>>>['[[151.22999572753906, -33.84008789062494], [151.22999572753906, -33.84008789062494', '151.22999572753906, -33.84008789062494]]']

【问题讨论】:

  • 你有没有尝试过?什么不起作用?

标签: python arrays list file coordinates


【解决方案1】:

看起来您的文件内容恰好是有效的 JSON。如果您确定格式不会改变,您可以使用json.load

import json
json.loads('[[151.22999572753906, -33.84008789062494]]')
# or
json.load(open('/path/to/your.txt'))

[[151.22999572753906, -33.84008789062494]]

【讨论】:

  • 我收到以下错误:JSONDecodeError: Extra data: line 1 column 27247 (char 27246). where column 27247 is "]]"
  • 听起来您的数据并未完全由您概述的格式描述。您可能需要编写自己的解析器。 27247 列之前和之后的字符是什么?
【解决方案2】:

开始

伪代码

with open(.txt)
    n = 0
    while True
        line = readline
        n += 1
        print(n , line)

你读了多少行?

【讨论】:

  • 我实际上只有一行,但它包含多个列表:[[151.22999572753906, -33.84008789062494], ... [...,...]][[...,...]...[...,...]] 并且这些列表之间没有字符
  • @Karim:您在两者之间显示, ,试试问题中的代码。
猜你喜欢
  • 2019-02-16
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
相关资源
最近更新 更多