import json
array = '{"fruits": ["apple", "banana", "orange"]}'
data = json.loads(array)
这是我的 JSON 数组,但我希望将 'fruits'
字符串中的所有值转换为 Python 列表。请问正确的做法是什么?
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']
将是一个列表。
import json
array = '{"fruits": ["apple", "banana", "orange"]}'
data = json.loads(array)
fruits_list = data['fruits']
print fruits_list
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
data
会返回一个列表的字符串表示形式,但实际上它仍然是一个字符串。只需使用 type(data)
检查 data
的类型即可。这意味着如果您尝试在此列表的字符串表示形式上使用索引,例如 data['fruits'][0]
,它将返回 "[",因为它是 data['fruits']
的第一个字符。
您可以使用 json.loads(data['fruits'])
将其转换回 Python 列表,以便您可以与常规列表索引交互。还有另外两种方法可以将其转换回 Python 列表,建议参考 此处。
data['fruits']
将会是一个列表。 - jdi