【问题标题】:Python - Convert String to an Object or ArrayPython - 将字符串转换为对象或数组
【发布时间】:2019-06-18 07:58:00
【问题描述】:

我将下面的数据存储在一个变量data_str 中,该变量有一个类字符串。

 level  page_num    block_num   par_num line_num    word_num    left    top width   height  conf    text
 1  1   0   0   0   0   0   0   500 659 -1  
 2  1   1   0   0   0   35  41  422 560 -1  
 3  1   1   1   0   0   44  41  406 203 -1  
 4  1   1   1   1   0   98  41  341 10  -1  
 5  1   1   1   1   1   98  42  31  8   70  ‘When
 5  1   1   1   1   2   135 42  17  8   75  Dr.
 5  1   1   1   1   3   160 41  32  9   92  Umali
 5  1   1   1   1   4   197 44  25  6   96  rose
 5  1   1   1   1   5   227 42  11  8   96  to
 5  1   1   1   1   6   243 41  17  9   93  the
 5  1   1   1   1   7   265 41  52  10  91  deanship
 5  1   1   1   1   8   322 41  11  9   96  of
 5  1   1   1   1   9   337 41  18  8   96  the
 5  1   1   1   1   10  361 41  27  9   80  U.P.
 5  1   1   1   1   11  394 41  45  10  85  College

每次我访问 data_str[0] 时,它都会返回 l 。我想访问第一行和它的每个单元格元素。换句话说,我想把它变成一个对象,这样我就可以轻松地访问它的每个单元格。我将如何在 Python 中做到这一点?请帮忙。

【问题讨论】:

  • 这些数据在 python 中是如何表示的?那是一个数据框吗?
  • @Alyssa Gono 您需要将字符串转换为 pandas 数据框或 numpy 数组
  • 您是从文本文件还是 csv 文件中获取data_str
  • @Rakesh -> 由库函数返回。
  • 先试试print(repr(data_str)),看看你的字符串是什么样子的。

标签: python arrays json python-3.x object


【解决方案1】:

如果存储在字符串中,

cells = data_str.split('\n')[1].split('\s') # first line in list

# all lines
lines = [line.split() for line in data_str.split('\n')]

或者使用csv lib 来处理整个字符串:

from io import StringIO # Python 3
import csv

f = StringIO(data_str)
reader = csv.reader(f, delimiter='\s')

lines = [row for row in reader]
# first line
cells = lines[1]

【讨论】:

  • 没有简单的方法吗?
  • @AlyssaGono 在什么意义上的“简单”?你想选择哪个库?它是纯蟒蛇。这对我来说似乎很容易。
【解决方案2】:

字符串在python中是数组,所以data_str[0]表示获取位置0的字符,即l

所以你可以:

  • 逐行拆分字符串以检索行列表。
  • 对于每一行,将其拆分以获得每一行的项目。

类似的东西

rows = data_str.splitlines()
arr = [row.split() for row in rows]
# now you can access item at row 1, column 2 like arr[1][2]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    相关资源
    最近更新 更多