将JSON数组转换为Python列表


78
import json

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

那是我的JSON数组,但我想将fruits字符串中的所有值转换为Python列表。正确的做法是什么?


3
你什么意思?data['fruits']将是一个列表
jdi 2012年

4
您有一个包含Array的JSON对象。JSON数组与Python同源。JSON对象与Python同源。从技术上讲,您有一个包含单个键-值对,其中值是字符串a。listdictdictlist
乔尔·科内特

Answers:


122
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']将是一个列表


1
啊对。我认为那只会从对象中获取单个字符串,而不是数组。谢谢!
user1447941 2012年

@ user1447941:没问题。解码器会将所有json对象转换为它们的python内置对应对象。
jdi 2012年

您是说'print(data ['fruits'])'吗,因为您的代码仅对我而言适用于()数据:)
Maarten

1
@MaartenOlijve此代码于2014年在python 2.7上编写。我认为您正在使用python 3进行测试,其中print现在是一个函数调用。
jdi

1
@shashikantkuswaha这是4年前写在python2上的,本机字符串格式是ascii。Unicode是另一种类型,Unicode文字被写为u'foo'。如果您只使用过python3,那么您将看不到该样式,因为所有字符串都是本机Unicode。
jdi

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.