标签: simplejson

json和simplejson Python模块之间有什么区别?

我见过很多项目使用simplejson模块而不是json标准库中的模块.此外,还有许多不同的simplejson模块.为什么要使用这些替代品,而不是标准库中的替代品?

python json simplejson

372
推荐指数
8
解决办法
11万
查看次数

为什么python中的日期时间对象的json序列化不能用于日期时间对象的开箱即用

为什么json序列化不适用于datetime对象.据我了解json序列化,任何对象的基本思想都可以调用 __str__内置函数,然后将你获得的对象作为响应进行urlencode.但是在datetime的情况下,我得到以下错误

TypeError: datetime.datetime(2012, 5, 23, 18, 38, 23, 37566) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

虽然有__str__一种方法可以对已经可用的物体进行字符串化,但似乎有意识地决定不这样做,为什么会出现这种情况呢?

python serialization json simplejson

52
推荐指数
3
解决办法
3万
查看次数

Python JSON编码

我正在尝试用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"}}
Run Code Online (Sandbox Code Playgroud)

所以我要么:

  • 我不懂JSON语法
  • 我不明白Pythons JSON模块
  • 我使用的是不合适的数据类型.

python encoding json types simplejson

51
推荐指数
3
解决办法
14万
查看次数

使用Python从JSON获取值

当我尝试从JSON字符串中检索值时,它会给我一个错误:

data = json.loads('{"lat":444, "lon":555}')
return data["lat"]
Run Code Online (Sandbox Code Playgroud)

但是,如果我迭代数据,它会给我元素(latlon),但不是值:

data = json.loads('{"lat":444, "lon":555}')
    ret = ''
    for j in data:
        ret = ret + ' ' + j
return ret
Run Code Online (Sandbox Code Playgroud)

哪个回报: lat lon

我需要什么做的就是值latlon?(444555)

python json simplejson

47
推荐指数
5
解决办法
25万
查看次数

SimpleJSON和NumPy数组

使用simplejson序列化numpy数组的最有效方法是什么?

python json numpy simplejson

41
推荐指数
4
解决办法
3万
查看次数

通过url获取json数据并在python中使用(simplejson)

我想这必须有一个简单的答案,但我正在努力:我想拿一个url(输出json)并在python中的可用字典中获取数据.我被困在最后一步.

>>> import urllib2
>>> import simplejson
>>> req = urllib2.Request("http://vimeo.com/api/v2/video/38356.json", None, {'user-agent':'syncstream/vimeo'})
>>> opener = urllib2.build_opener()
>>> f = opener.open(req)
>>> f.read()             # this works
'[{"id":"38356","title":"Forgetfulness - Billy Collins Animated Poetry","description":"US Poet Laureate Billy Collins reads his poem ","url":"http:\\/\\/vimeo.com\\/38356","upload_date":"2006-01-24 15:21:03","thumbnail_small":"http:\\/\\/80.media.vimeo.com\\/d1\\/5\\/47\\/74\\/thumbnail-4774968.jpg","thumbnail_medium":"http:\\/\\/80.media.vimeo.com\\/d1\\/5\\/46\\/85\\/thumbnail-4685118.jpg","thumbnail_large":"http:\\/\\/images.vimeo.com\\/87\\/39\\/873998\\/873998_640x480.jpg","user_name":"smjwt","user_url":"http:\\/\\/vimeo.com\\/smjwt","user_portrait_small":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.30.jpg","user_portrait_medium":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.75.jpg","user_portrait_large":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.100.jpg","user_portrait_huge":"http:\\/\\/bitcast.vimeo.com\\/vimeo\\/portraits\\/defaults\\/d.300.jpg","stats_number_of_likes":"281","stats_number_of_plays":"9173","stats_number_of_comments":23,"duration":"112","width":"320","height":"240","tags":"poetry, poet, online poetry, famous poet, video poetry, modern poetry, famous poem, poetry sites, poetry websites, audio poetry, american poet, animation clips, american poetry, free poetry sites, animation art, free poetry, animated clips, poem, poet laureate"}]'
>>> simplejson.load(f)
Traceback (most …
Run Code Online (Sandbox Code Playgroud)

python json urllib2 simplejson

38
推荐指数
2
解决办法
6万
查看次数

如何安装SimpleJson Package for Python

http://pypi.python.org/pypi/simplejson

我只是潜入Python世界,并希望制作一个简单的twitter应用程序,需要安装simplejson但不知道如何设置它并让它工作..

我在Windows系统上

python simplejson

36
推荐指数
4
解决办法
11万
查看次数

从SimpleHTTPServer Post数据中读取JSON

我正在尝试使用python SimpleHTTPServer构建一个简单的REST服务器.我在发布消息时遇到问题.如果我做得对,请告诉我.

from SimpleHTTPServer import SimpleHTTPRequestHandler
import SocketServer
import simplejson

class S(SimpleHTTPRequestHandler):
    def _set_headers(self):
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()

    def do_GET(self):
        print "got get request %s" % (self.path)
        if self.path == '/':
          self.path = '/index.html'
          return SimpleHTTPRequestHandler.do_GET(self)

    def do_POST(self):
        print "got post!!"
        content_len = int(self.headers.getheader('content-length', 0))
        post_body = self.rfile.read(content_len)
        test_data = simplejson.loads(post_body)
        print "post_body(%s)" % (test_data)
        return SimpleHTTPRequestHandler.do_POST(self)

def run(handler_class=S, port=80):
    httpd = SocketServer.TCPServer(("", port), handler_class)
    print 'Starting httpd...'
    httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

index.html文件

<html>
<title>JSON TEST PAGE</title>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript"> …
Run Code Online (Sandbox Code Playgroud)

python ajax rest simplejson simplehttpserver

34
推荐指数
2
解决办法
6万
查看次数

Python JSON模块没有属性'dumps'

我正在运行Python 2.7(x64 Linux)并尝试将其转换dict为JSON对象.

>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=0, releaselevel='final', serial=0)
Run Code Online (Sandbox Code Playgroud)

我试图使用simplejson(json从标准库回退)但我收到以下错误:

>>> try: import simplejson as json
... except ImportError: import json
...                  
>>> metadata = dict()
>>> metadata['foo'] = 'bar'
>>> print metadata
{'foo': 'bar'}
>>> json.dumps(metadata)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'dumps' 
Run Code Online (Sandbox Code Playgroud)

使用jsonsimplejson使用Python 2.7 时是否有一些明显的缺失?

python import json simplejson attributeerror

33
推荐指数
7
解决办法
4万
查看次数

使用simplejson序列化简单类对象的最简单方法?

我正在尝试使用JSON(使用simplejson)序列化python对象列表,并且得到对象"不是JSON可序列化"的错误.

该类是一个简单的类,其字段只有整数,字符串和浮点数,并且从一个父超类继承类似的字段,例如:

class ParentClass:
  def __init__(self, foo):
     self.foo = foo

class ChildClass(ParentClass):
  def __init__(self, foo, bar):
     ParentClass.__init__(self, foo)
     self.bar = bar

bar1 = ChildClass(my_foo, my_bar)
bar2 = ChildClass(my_foo, my_bar)
my_list_of_objects = [bar1, bar2]
simplejson.dump(my_list_of_objects, my_filename)
Run Code Online (Sandbox Code Playgroud)

其中foo,bar是我上面提到的简单类型.唯一棘手的问题是ChildClass有时会有一个字段引用另一个对象(不是ParentClass或ChildClass的类型).

使用simplejson将此序列化为json对象的最简单方法是什么?将其序列化为字典是否足够?简单地为ChildClass 编写一个dict方法是最好的方法吗?最后,引用另一个对象的字段是否会使事情变得复杂化?如果是这样,我可以重写我的代码只在类中有简单的字段(如字符串/浮点数等)

谢谢.

python json simplejson

28
推荐指数
2
解决办法
4万
查看次数