gdata.core | index /home/afshar/working/gdata-python-client/src/gdata/core.py

`# Copyright (C) 2010 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.`

Modules
`` |  |
simplejson |  |  |

Classes
`` |  | __builtin__.object Jsonc
class Jsonc(__builtin__.object)
`` | `Represents JSON-C data in an easy to access object format. To access the members of a JSON structure which looks like this: { "data": { "totalItems": 800, "items": [ { "content": { "1": "rtsp://v5.cache3.c.youtube.com/CiILENy.../0/0/0/video.3gp" }, "viewCount": 220101, "commentCount": 22, "favoriteCount": 201 } ] }, "apiVersion": "2.0" } You would do the following: x = gdata.core.parse_json(the_above_string) # Gives you 800 x.data.total_items # Should be 22 x.data.items[0].comment_count # The apiVersion is '2.0' x.api_version To create a Jsonc object which would produce the above JSON, you would do: gdata.core.Jsonc( api_version='2.0', data=gdata.core.Jsonc( total_items=800, items=[ gdata.core.Jsonc( view_count=220101, comment_count=22, favorite_count=201, content={ '1': ('rtsp://v5.cache3.c.youtube.com' '/CiILENy.../0/0/0/video.3gp')})])) or x = gdata.core.Jsonc() x.api_version = '2.0' x.data = gdata.core.Jsonc() x.data.total_items = 800 x.data.items = [] # etc. How it works: The JSON-C data is stored in an internal dictionary (._dict) and the getattr, setattr, and delattr methods rewrite the name which you provide to mirror the expected format in JSON-C. (For more details on name conversion see _to_jsonc_name.) You may also access members using getitem, setitem, delitem as you would for a dictionary. For example x.data.total_items is equivalent to x['data']['totalItems'] (Not all dict methods are supported so if you need something other than the item operations, then you will want to use the ._dict member). You may need to use getitem or the _dict member to access certain properties in cases where the JSON-C syntax does not map neatly to Python objects. For example the YouTube Video feed has some JSON like this: "content": {"1": "rtsp://v5.cache3.c.youtube.com..."...} You cannot do x.content.1 in Python, so you would use the getitem as follows: x.content['1'] or you could use the _dict member as follows: x.content._dict['1'] If you need to create a new object with such a mapping you could use. x.content = gdata.core.Jsonc(_dict={'1': 'rtsp://cache3.c.youtube.com...'})`
| Methods defined here: __delattr__(self, name) __delitem__(self, key) __getattr__(self, name) __getitem__(self, key) `# For container methods pass-through to the underlying dict.` __init__(self, _dict=None, **kwargs) __setattr__(self, name, value) __setitem__(self, key, value) Data descriptors defined here: __dict__ `dictionary for instance variables (if defined)` __weakref__ `list of weak references to the object (if defined)`

Functions
`` |  | jsonc_to_string(jsonc_obj) `Converts a Jsonc object into a string of JSON-C.` parse_json(json_string) `Converts a JSON-C string into a Jsonc object. Args: json_string: str or unicode The JSON to be parsed. Returns: A new Jsonc object.` parse_json_file(json_file) prettify_jsonc(jsonc_obj, indentation=2) `Converts a Jsonc object to a pretified (intented) JSON string.`

Data
`` |  | __author__ = 'j.s@google.com (Jeff Scudder)'

Author
`` |  | j.s@google.com (Jeff Scudder)