python中处理json数据,谢谢!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中处理json数据,谢谢!!相关的知识,希望对你有一定的参考价值。
感谢各位可以帮忙!我需要用python语言读取一个json文件并进行分析json文件:https://pan.baidu.com/s/1rQBE8wDmUrbza5yiOtBxiQ格式如图所示,每一个region下有多个arm,每个arm对应一个街道,我想分析出每个街道下面的数据之和。 比如第一个处理完以后显示: streetName: GEORGE STtotal=74另外,因为不同arm里的街道名字有一样的,我希望可以合并一样的街道名称,比如第一个和第二个arm都是GEORGE ST,最后GEORGE ST的total就等于两个arm的相加之和。最后请输出前5个最多的street名称谢谢各位大神!!不胜感激!!
参考技术A 亲测 楼上的答案完全正确小建议:排序那里不用转成列表,字典可以直接排序:
print sorted(result.items(), key=lambda x:x[1],reverse=True)[:5]追问
您好,谢谢您的建议
但是我想问一下,为什么输出的结果里最多的只有51呢?
因为有200多个街道的名称是空的
参考技术B python哪个版本呢?追问python3,谢谢您
追答import jsondef dict2list(dic:dict):
''' 将字典转化为列表 '''
keys = dic.keys()
vals = dic.values()
lst = [(key, val) for key, val in zip(keys, vals)]
return lst
with open('32338.json', 'r') as f:
data = json.load(f)
result =
for arms in data:
if 'arms' in arms:
for arm in arms['arms']:
if 'streetName' in arm:
if arm['streetName'] in result:
result[arm['streetName']] += 1
else:
result[arm['streetName']] = 1
# print(arm['streetName'])
t = sorted(dict2list(result), key=lambda x:x[1], reverse=True)[:5]
print(t)追问
您好,很感谢您帮忙,但是请问这个输出结果是不是有些问题?因为第一个George st就有70+
谢谢!
python中json处理
参考技术A python中json文件处理涉及的四个函数json.loads()、json.dumps()、json.load()、json.dump()。1)json.dumps()
将一个Python数据类型dict进行json格式的编码(字典->字符串)
eg:
age_dict = 'age1':'12', 'age2':'15'
json_info = json.dumps(age_dict)
print("json_info = ".format(json_info))
print("json_info type = ".format(type(json_info)))
2)json.loads()
将json格式数据转换为dict(字符串->字典)
json_age ='"age1": "12", "age2": "15"'
dict_age = json.loads(json_info)
print("json_age = ".format(json_age))
print("dict_age type = ".format(str(type(dict_age))))
3)json.load()
读取文件,将里json格式字符串转化为dict
with open(test.json, 'r') as file:
contents = json.load(file)
print(contents)
4)json.dump()
将dict类型转换为json格式字符串,存入文件
number = [1, 2, 3, 5]
file = 'number.json'
with open(file , 'w') as file:
json.dump(number, file)
以上是关于python中处理json数据,谢谢!!的主要内容,如果未能解决你的问题,请参考以下文章