Python列表不能像lis那样工作

2024-06-25 23:06:45 发布

您现在位置:Python中文网/ 问答频道 /正文

openFile = open('user.txt', 'r')
data =[]
data = openFile.read())
print((data[0])

这是my user.txt文件数据:

[["admin", "123", "2017-May-21 01:43:37"], ["nimal", "456", "2017-Apr-10 21:24:48"], ["kamal", "8745", "2017-Apr-15 21:25:46"]]

它是二维列表。但是当读取和获取这些数据时,我不能使用索引打印数组

输出:

[

我需要这个输出:

['admin', '123', '2017-May-21 01:43:37']

Tags: 文件数据txtreaddataadminmyopen
2条回答

您的数据是json编码的字符串。您可以将其解码为如下python列表:

import json

strg = '''[["admin", "123", "2017-May-21 01:43:37"], ["nimal", "456", "2017-Apr-10 21:24:48"], ["kamal", "8745", "2017-Apr-15 21:25:46"]]'''

data = json.loads(strg)

print(data[0])
# ['admin', '123', '2017-May-21 01:43:37']

也可以直接从文件中读取:

with open('user.txt', 'r') as file:
    data = json.load(file)
print(data[0])

在这里,将数据分配给空列表:

data =[]

但随后将数据分配给文件的文本内容:

data = openFile.read())

。。。它不再是一张单子了。似乎您希望data以某种方式神奇地记住它以前是一个列表,并根据该类型解释它的新内容,但它没有这样做

user.txt的内容看起来像一个2D列表,但它只是文本。但是因为文本看起来像一个2D列表,所以可以使用json模块来做您想做的事情:

import json
openFile = open('user.txt', 'r')
data = json.load(openFile)
print (data[0])

相关问题 更多 >