#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数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)