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 json

def 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数据,谢谢!!的主要内容,如果未能解决你的问题,请参考以下文章

求助!,python2处理utf-8编码的中文json.dumps后输出乱码问题,求大神帮忙解决下,谢谢!

python中json处理

Python处理JSON数据

python写入json文件

在 python 中处理大型 JSON 数据

json数据处理:读取文件中的json字符串,转为python字典