IP代理软件,http代理,API提取-黑洞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. 23

    2019-11

    代理ip可以用于发外链吗?

    在seo中有一种优化得方法就是外链,外链是促进SEO优化得一个重要方式。那么,怎么发外链效果会好呢?百度算法得不断升级,不断得降低了外链对优化得网站得作用,导致了很多网站站长对外

  2. 29

    2019-09

    如何获取到最新可用的https代理ip?

    现如今,网络发展日新月异,https代理之间的竞争也越来越激烈。随意在搜索引擎查询,各式各样的代理IP网站可谓是五花八门。这其中最多的是免费代理IP资源,而实际测试过你会发现,免费代

  3. 24

    2019-06

    代理IP盘点通用的爬虫系统有哪些类型?

    爬虫技术就是一个高效的下载系统,能够将海量的网页数据传送到本地,在本地形成互联网网页的镜像备份。根据具体应用的不同,爬虫系统在许多方面存在差异,大体而已,可以将爬虫系统分

  4. 13

    2019-04

    分布式爬虫搭建好后,代理ip出问题该怎么办?

    搭建好了分布式爬虫,正准备让程序去抓取数据,服务器也搭好了。突然发现,当前代理ip地址不可用了,应该怎么办呢?

  5. 10

    2019-10

    必须知道HTTP代理IP的几点

    HTTP代理IP在现实生活中应用越来越频繁,越来越多的网络运营、销售、推广需要这种代理方式。而在你使用HTTP代理IP时,你真的明白它的工作原理吗?你是否能根据自己实际需要选择一款最适合

  6. 01

    2019-09

    代理ip在互联网发展中有什么作用?

    当今时代是一个信息时代,更是一个网络时代,在这这个信息量巨大,选择众多的网络时代里,IP代理的选择越来越成为人们在这个时代不可忽视的重要选择。的出现,个这个蓬勃发展的领域带