黑洞HTTP代理

黑洞HTTP

您的位置: 首页 > 新闻资讯 > HTTP代理 > 正文

IP代理:python学习-- Django进阶之路 model的 objects对象 转 json

发布时间:2019年03月18日 来源:http://http.hunbovps.com/News/getList/catid/8/id/134.html

# objects_to_json: 将 model对象 转化成 json

# json_to_objects: 将 将反序列化的json 转为 model 对象

def json_field(field_data):

IP代理:python学习-- Django进阶之路 model的 objects对象 转 json

"""

将字典的键值转化为对象

:param field_data:

:return:

"""

if isinstance(field_data, str):

return "\"" + field_data + "\""

elif isinstance(field_data, bool):

if field_data == 'False':

return 'false'

else:

return 'true'

elif isinstance(field_data, unicode):

return "\"" + field_data.encode('utf-8') + "\""

elif field_data is None:

return "\"\""

else:

return "\"" + str(field_data) + "\""



def json_encode_dict(dict_data):

"""

将字典转化为json序列

:param dict_data:

:return:

"""

json_data = "{"

for (k, v) in dict_data.items():

json_data = json_data + json_field(k) + ':' + json_field(v) + ', '

json_data = json_data[:-2] + "}"

return json_data



def json_encode_list(list_data):


"""

将列表中的字典元素转化为对象

:param list_data:

:return:

"""

json_res = "["

for item in list_data:

json_res = json_res + json_encode_dict(item) + ", "

return json_res[:-2] + "]"



def objects_to_json(objects, model):


"""

将 model对象 转化成 json

example:

1. objects_to_json(Test.objects.get(test_id=1), EviewsUser)

2. objects_to_json(Test.objects.all(), EviewsUser)

:param objects: 已经调用all 或者 get 方法的对象

:param model: objects的 数据库模型类

:return:

"""

from collections import Iterable

concrete_model = model._meta.concrete_model

list_data = []


# 处理不可迭代的 get 方法

if not isinstance(object, Iterable):

objects = [objects, ]


for obj in objects:

dict_data = {}

print concrete_model._meta.local_fields

for field in concrete_model._meta.local_fields:

if field.name == 'user_id':

continue

value = field.value_from_object(obj)

dict_data[field.name] = value

list_data.append(dict_data)


data = json_encode_list(list_data)

return data



def json_to_objects(json_str, model):


"""

将 将反序列化的json 转为 model 对象

example:

Test model 预先定义

test_str = '[{"test_id":"0", "test_text":"hello json_to_objects"}]'

json_to_objects(json_str, model)

:param json_str:

:param model: objects的 数据库模型类

:return:

"""

import ast

json_list = ast.literal_eval(json_str)

obj_list = []

field_key_list = [field.name for field in model._meta.concrete_model._meta.local_fields]

for item in json_list:

obj = model()

for field in item:

if field not in field_key_list:

raise ValueError('数据库无 ' + field + ' 字段')

setattr(obj, field, item[field])

obj_list.append(obj)

return obj_list 


黑洞http:是企业级http服务提供商,大数据采集服务服务提供商,我们拥有高品质爬虫代理,遍布全国200+城市服务器,从容应对海量IP需求,我们从不吝惜产品质量,为确保您获得最佳体验,我们选择与国内最值得信赖的运营服务商进行深度合作,提供更快,更可靠的服务。


相关文章内容简介

1 IP代理:python学习-- Django进阶之路 model的 objects对象 转 json

# objects_to_json: 将 model对象 转化成 json# json_to_objects: 将 将反序列化的json 转为 model 对象def json_field(field_data):"""将字典的键值转化为对象:param field_data::return:"""if isinstance(field_data, str):return "\"" + field_data + "\""elif isinstance(field_data, bool):if field_data == 'False':return 'false'else:return 'true'elif isinstan [阅读全文]

热门标签

最新标签

推荐阅读

  1. 17

    2019-07

    免费代理IP的安全性有保障吗?

    代理IP就是来代替用户的IP进行访问,代理IP分为普通代理ip、透明代理ip、高匿代理ip,免费代理肯定使用的是透明代理或普通代理,对个人信息是无法起到保护作用的。

  2. 24

    2019-03

    游戏封号与使用IP代理有关系吗?

    游戏封号与使用IP代理有关系吗?是有的。游戏被封号的理由千千万,但是与IP有什么关系呢?

  3. 17

    2019-06

    哪里有国内高匿免费代理IP资源?

    不知道你是否发现,代理IP在现实生活中的应用越来越频繁,在网络信息化高速运转的今天,代理IP已成为一种不错的上网方式,它可以满足很多人不同的上网诉求。

  4. 27

    2019-03

    选择http代理IP需要注意些什么?

    在日常生活中,我们平时上网可能会很少用到http代理IP,但在从事互联网工作中,用到http代理IP的机会就比较多了。HTTP代理IP确实给我们的工作带来很多便利,也正因为如此,市面上的代理IP越

  5. 14

    2019-08

    如何检查透明代理ip拦截呢?

    一个 透明代理 ,也被称为强迫或拦截代理,是由ISP部署中间人系统。它被称为“透明”,因为客户端并不知道它的存在。一个 透明代理 行为你,你要访问的网站之间的中介。当您连接到该网

  6. 25

    2019-06

    大数据行业如何利用HTTP代理IP?

    互联网时代,仅靠自己是无法满足发展需要的,我们还需要学会多利用身边可用资源。无论哪个行业,只要与网络挂钩,就注定它的发展离不开大数据的支持。游戏、旅游、购物等等都是如此。