将JSON数组转换为Python列表

gdrx4gfi  于 2023-02-28  发布在  Python
关注(0)|答案(4)|浏览(162)
import json

array = '{"fruits": ["apple", "banana", "orange"]}'
data  = json.loads(array)

这是我的JSON数组,但是我想把'fruits'字符串中的所有值转换成Python列表,正确的方法是什么?

whitzsjs

whitzsjs1#

import json

array = '{"fruits": ["apple", "banana", "orange"]}'
data  = json.loads(array)
print data['fruits']
# the print displays:
# [u'apple', u'banana', u'orange']

您已经拥有了所需的一切。data将是一个法令,而data['fruits']将是一个列表

qoefvg9y

qoefvg9y2#

Tested on Ideone.

import json
array = '{"fruits": ["apple", "banana", "orange"]}'
data  = json.loads(array)
fruits_list = data['fruits']
print fruits_list
evrscar2

evrscar23#

data将返回列表的字符串表示,但它实际上仍然是一个字符串。只需使用type(data)检查data的类型。这意味着如果您尝试对列表的此字符串表示(如data['fruits'][0])使用索引,它将返回“[”,因为它是data['fruits']的第一个字符
您可以执行json.loads(data['fruits'])将其转换回Python列表,以便与常规列表索引交互。还有另外两种方法可以将其转换回Python列表,建议使用here

3htmauhk

3htmauhk4#

Python标准库ast中的ast.literal_eval()也可以用来解析json字符串。
如果字符串看起来像一个json,但实际上是Python对象的字符串表示,那么json.loads就不起作用了,而ast.literal_eval可以。

import ast
array = '{"fruits": ("apple", "banana", "orange")}'
a = ast.literal_eval(array)  # {'fruits': ('apple', 'banana', 'orange')}
j = json.loads(array)        # JSONDecodeError

相关问题