如何使用python处理带有Mongodb的不规则json数据

如何使用python处理带有Mongodb的不规则json数据,第1张

#coding=utf-8

import sunburnt

import urllib

from pymongo import Connection

from bsonobjectid import ObjectId

import logging

from datetime import datetime

import json

from time import mktime

from feedparser import _parse_date as parse_date

import time

import sys

import getopt

import ConfigParser

args = sysargv[1:]

optlist, args = getoptgetopt(args, 'c:')

cmd_opt = {}

for opt in optlist:

cmd_opt[opt[0]] = opt[1]

conf_file = cmd_opt['-c']

config = ConfigParserConfigParser()

configread(conf_file)

hostname = configget("mongodb", "hostname")

port_num = int(configget("mongodb", "port_num"))

db_name = configget("mongodb", "db")

connection = Connection(hostname, port_num)

db = connection[db_name]

courseTable = dbcourse

lecTable = dblecture

try:

f = file("json1-14/14json")

s = jsonload(f)

courseData = s["results"]["course"]

lecDataArr = s["results"]["lecture"]

fclose

print "get file content successfully!"

#insert course

courseId = courseTablesave(courseData)

courseId = str(courseId)

print "courseId: "+courseId

print "lec length: "+str(len(lecDataArr))

#insert lecture

lecIdArr = []

for lecData in lecDataArr:

lecData["course_id"] = courseId

lecId = lecTablesave(lecData)

lecIdArrappend(str(lecId))

# update course

courseTableupdate({'_id':ObjectId(courseId)},

{"$set":{"lectureslecture_id_list":lecIdArr}},

upsert=True, multi=True);

print 'insert successfully!'

except Exception, e:

print e

可以首先使用json包的loads函数对json数据进行解析,然后就可以像 *** 作Python数据格式一样对数据进行索引和遍历了。

import json

s = '{"aescCityList":null,"cityAllList":null,"cityJsonArray"'

data = jsonloads(s)

for city in data["cityJsonArray"]:

if city["cityId"] == 4:

print city

以前在远标了解过首先找到获取所需信息的请求,之后查看请求地址和请求参数,使用同样的请求发送数据,如果能得到就OK,得不到的话,可以看一下浏览器的请求代码,火狐和Chrome都可以查看,然后把这些请求头加到代码中,就可以查到了,如果得到的是乱码,有可能被压缩了,解压一下就好,一般为gzip类型压缩,请求头Accept-Encoding:gzip是这样的。

python中json文件处理涉及的四个函数jsonloads()、jsondumps()、jsonload()、jsondump()。

1)jsondumps()

    将一个Python数据类型dict进行json格式的编码(字典->字符串

    eg:

    age_dict = {'age1':'12', 'age2':'15'}

    json_info = jsondumps(age_dict)

    print("json_info = {}"format(json_info))

    print("json_info type = {}"format(type(json_info)))

2)jsonloads()

    将json格式数据转换为dict(字符串->字典)

    json_age ='{"age1": "12", "age2": "15"}'

    dict_age = jsonloads(json_info)

    print("json_age = {}"format(json_age))

    print("dict_age type = {}"format(str(type(dict_age))))

3)jsonload()

    读取文件,将里json格式字符串转化为dict

    with open(testjson, 'r') as file:

        contents = jsonload(file)

    print(contents)

4)jsondump()

    将dict类型转换为json格式字符串,存入文件

    number = [1, 2, 3, 5]

    file = 'numberjson'

    with open(file , 'w') as file:

        jsondump(number, file)

例json文件,名字testjson,

{

 "verson":"142" ,

 "author":"johanna",

 "type":"1"

}

python编码:

首先读取json文件内容,利用jsonloads()转化为dict类型,遍历每一对key,val

import json

import os

try:

t_str = open('/testjson','r')read()

t_json = jsonloads(t_str)

for k,v in t_jsonitems():

print k,v

except Exception,e:

print str(e)

读:

import requests,json

r = requestget(url)

jsondata = jsonloads(rcontent)

#读取你需要的字段

写就更简单了,从数据库或者txt或者excel里按规则拿数据,然后写入json文件不就行了么。。。

二营长SEO

以上就是关于如何使用python处理带有Mongodb的不规则json数据全部的内容,包括:如何使用python处理带有Mongodb的不规则json数据、python 多层嵌套的json内容 怎么获取、如何用python获得跨域请求的json数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9589978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存