我试图用Python将数据编码成JSON,但我遇到了不少麻烦。我相信这个问题只是一个误会。
我对Python比较陌生,从来没有真正熟悉过各种Python数据类型,所以这很可能是困扰我的地方。
目前,我正在声明一个列表,循环遍历另一个列表,并将一个列表附加到另一个列表中:
import simplejson, json
data = [['apple', 'cat'], ['banana', 'dog'], ['pear', 'fish']]
x = simplejson.loads(data)
# >>> typeError: expected string or buffer..
x = simplejson.dumps(stream)
# >>> [["apple", "cat"], ["banana", "dog"], ["pear", "fish"]]
# - shouldn't JSON encoded strings be like: {{"apple":{"cat"},{"banana":"dog"}}
所以我要么:
发布于 2009-06-11 13:41:16
Python lists
转换为JSON arrays
。它为您提供的是一个可以在Javascript应用程序中使用的完全有效的JSON字符串。要获得预期的结果,您需要使用dict
>>> json.dumps({'apple': 'cat', 'banana':'dog', 'pear':'fish'})
'{"pear": "fish", "apple": "cat", "banana": "dog"}'
发布于 2009-06-11 15:07:37
我认为您只是在交换转储和负载。
>>> import json
>>> data = [['apple', 'cat'], ['banana', 'dog'], ['pear', 'fish']]
第一个函数以(JSON编码)字符串的形式返回其数据参数:
>>> encoded_str = json.dumps( data )
>>> encoded_str
'[["apple", "cat"], ["banana", "dog"], ["pear", "fish"]]'
第二个则相反,返回与其(JSON编码的)字符串参数对应的数据:
>>> decoded_data = json.loads( encoded_str )
>>> decoded_data
[[u'apple', u'cat'], [u'banana', u'dog'], [u'pear', u'fish']]
>>> decoded_data == data
True
发布于 2009-06-11 13:41:48
在simplejson
(或Python2.6及更高版本中的库json
)中,loads
采用JSON字符串并返回Python数据结构,dumps
采用Python数据结构并返回JSON字符串。JSON字符串可以编码Javascript数组,而不仅仅是对象,而Python列表对应于编码数组的JSON字符串。获取JSON字符串,例如
{"apple":"cat", "banana":"dog"}
您传递给json.dumps
的Python对象可以是:
dict(apple="cat", banana="dog")
尽管JSON字符串对于相同的dict
也是有效的Python语法。但是,我相信您所期望的特定字符串只是无效的JSON语法。
https://stackoverflow.com/questions/983855
复制相似问题