How to read a list which is in list format in a te

2019-08-30 03:04发布

I have this list in a txt file:

[1, "hello", {"Name": "Tom"}, [2, 3, "hello_hello"], (800, 600)]

There are an int, a str, a dict, a list and a tuple (not that it was really the matter).

I'd like to read this like this was a list (as it really is) not like one string.

I'd like to get a result like:

elem[0] = 1
elem[1] = "hello"
elem[2] = {"Name": "Tom"}
elem[3] = [2, 3, "hello_hello"]
elem[4] = (800,600)

Also it would be really nice if the dictionary evaluated eval() immediately, but that's not really the point.

2条回答
做个烂人
2楼-- · 2019-08-30 03:20

As indicated by @AvinashRaj in the comments, you can use the ast module (ast: Abstract Syntax Trees):

import ast

print ast.literal_eval('[1, "hello", {"Name": "Tom"}, [2, 3, "hello_hello"], (800, 600)]')

Output:

[1, 'hello', {'Name': 'Tom'}, [2, 3, 'hello_hello'], (800, 600)]

This should be the exact result (elem) you are expecting.

查看更多
forever°为你锁心
3楼-- · 2019-08-30 03:23

I'd consider it a json.

import json
my_list = json.load(my_str_list)
查看更多
登录 后发表回答