當前位置:首頁 » 編程語言 » pythonjson排序

pythonjson排序

發布時間: 2022-09-10 03:05:26

1. 怎樣用python解析json

>>>importjson
>>>data={"spam":"foo","parrot":42}
>>>in_json=json.mps(data)#Encodethedata
>>>in_json
'{"parrot":42,"spam":"foo"}'
>>>json.loads(in_json)#DecodeintoaPythonobject
{"spam":"foo","parrot":42}

2. 如何用python處理json文件

importjson,time

infos={"_id":"description","name":"python","filename":"中文","os":["abcd","hello","www"]}
infos["time"]=time.time()#動態修改json文件內容
#生成json文件
defjson_file(infos):
withopen("./static/desc.desc","w")asjsonf:
jsonf.write(json.mps(infos))
json_file(infos)#讀取json文件的內容
file_info=json.load(file("./static/desc.desc"))
printfile_info,type(file_info)
filename=file_info["filename"]
printfilename

infos=json.mps(file_info,sort_keys=True,indent=4)
printinfos,type(infos)

python使用json模塊來處理json數據

3. python中怎麼對json數組按json的某個欄位進行排序

以下代碼運行通過:

json_array=[{"time":20150312,"value":"c"},{"time":20150301,"value":"a"},{"time":20150305,"value":"b"}]

json_array.sort(key=lambdax:x["time"])

print(json_array)

運行結果:

4. python json 內有多個json

Json簡介:Json,全名 JavaScript Object Notation,是一種輕量級的數據交換格式。Json最廣泛的應用是作為AJAX中web伺服器和客戶端的通訊的數據格式。現在也常用於http請求中,所以對json的各種學習,是自然而然的事情。Python的官網網址:

Json API 使用:python在版本2.6之前,是需要先下載包,安裝後才能使用的,有點類似現在的RF內使用SeleniumLibrary一樣。但是在2.6中,官方文檔明顯指出,「有一些重要的新的軟體包添加到了標准庫,比如multiprocessing 和json,但是跟python 3比,2.6的這些包不會引進更多的新功能。"於是安裝python2.6以上版本的童鞋,可以不需要下載json包,直接在所需的地方就import json 即可使用,在安裝目錄下的Lib 下,看到這兩個包(點進去仔細閱讀這些源碼,會有更多的收獲,)如下文所示:

5. python怎麼讀取json文件內容

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C、C++、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網路傳輸速率)。

JSON在python中分別由list和dict組成。

這是用於序列化的兩個模塊:

  • json: 用於字元串和python數據類型間進行轉換

  • pickle: 用於python特有的類型和python的數據類型間進行轉換

  • Json模塊提供了四個功能:mps、mp、loads、load

    pickle模塊提供了四個功能:mps、mp、loads、load

    json mps把數據類型轉換成字元串 mp把數據類型轉換成字元串並存儲在文件中 loads把字元串轉換成數據類型 load把文件打開從字元串轉換成數據類型

    json是可以在不同語言之間交換數據的,而pickle只在python之間使用。json只能序列化最基本的數據類型,josn只能把常用的數據類型序列化(列表、字典、列表、字元串、數字、),比如日期格式、類對象!josn就不行了。而pickle可以序列化所有的數據類型,包括類,函數都可以序列化。

    事例:

    mps:將python中的 字典 轉換為 字元串

6. python 多層嵌套的json內容 怎麼獲取

可以首先使用json包的loads函數對json數據進行解析,然後就可以像操作Python數據格式一樣對數據進行索引和遍歷了。

import json

s = '{"aescCityList":null,"cityAllList":null,"cityJsonArray"...'
data = json.loads(s)
for city in data["cityJsonArray"]:
if city["cityId"] == 4:
print city

7. Python如何從.json文件中獲取數據

json是一個文本數據,讀取進Python以後,可直接用eval函數解析文本成一個字典。或者可以用py自帶的json包。json.load 或者json.loads方法,前面那個可以直接讀文本文件,後面那個是讀取字元串的。

8. json.loads()方法將一個json串轉化為dict的時候,元素順序變化了

內置模塊問題。

9. 請教一個關於python處理json的問題

{
data : {
{
tg_i":" 1080723 ",
contest_i" : "1001",
sid : "1567515287"
},
{
tg_id : "1080723",
contest_id : "1001",
sid : "1567515287"
}
},
total : "2"
}

然後經過修改,變成:
?

1

{"data":{{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"},{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"}},"total":"2"}

格式化為:
?

1
2
3
4
5
6
7
8
9
10
11
12
13

{
"data" : { {
"tg_i" : "1080723",
"contest_i" : "1001",
"sid" : "1567515287"
}, {
"tg_id" : "1080723",
"contest_id" : "1001",
"sid" : "1567515287"
}
},
"total" : "2"
}

但是,去用json解析,但是出錯:

Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32

Type "right", "credits" or "license()" for more information.
>>> import json
>>> json.loads(『{"data":{{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"},{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"}},"total":"2"}』)
Traceback (most recent call last):

File "<pyshell#2>", line 1, in <mole>
json.loads(『{"data":{{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"},{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"}},"total":"2"}』)
File "D:\tmp\dev_install_root\Python27_x64\lib\json\__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "D:\tmp\dev_install_root\Python27_x64\lib\json\decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "D:\tmp\dev_install_root\Python27_x64\lib\json\decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 9 (char 9)

【折騰過程】
1.剛開始,看了看:
{"data":{{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"},{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"}},"total":"2"}
好像也都是正常的,沒什麼錯誤。
2.後來才發現,對應著錯誤的位置:
column 9
是大括弧'{『
對應著,格式化的結果中的:
"data" : { {
中的第一個大括弧
然後才發現,原來是,data鍵的值,此處寫成用大括弧括起來的:
?

1
2
3
4
5
6
7
8
9
10

"data" : { {
"tg_i" : "1080723",
"contest_i" : "1001",
"sid" : "1567515287"
}, {
"tg_id" : "1080723",
"contest_id" : "1001",
"sid" : "1567515287"
}
},

但是,實際上,data的值,只是兩個dict,所以,應該是:
要麼改為list:
?

1
2
3
4
5
6
7
8
9
10

"data" : [{
"tg_i" : "1080723",
"contest_i" : "1001",
"sid" : "1567515287"
}, {
"tg_id" : "1080723",
"contest_id" : "1001",
"sid" : "1567515287"
}
],

要麼改為dict:
?

1
2
3
4
5
6
7
8
9
10

"data1" : {
"tg_i" : "1080723",
"contest_i" : "1001",
"sid" : "1567515287"
},
"data2" : {
"tg_id" : "1080723",
"contest_id" : "1001",
"sid" : "1567515287"
},

對應著,非格式化的內容就是:
?

1

{"data":[{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"},{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"}],"total":"2"}

和:
?

1

{"data1":{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"}, "data2":{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"},"total":"2"}

這樣才可以正常解析:

>>> json.loads(『{"data":[{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"},{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"}],"total":"2"}』)

{u』total』: u』2′, u』data』: [{u』sid』: u』1567515287′, u』contest_i』: u』1001′, u』tg_i』: u』1080723′}, {u』tg_id』: u』1080723′, u』contest_id』: u』1001′, u』sid』: u』1567515287′}]}
>>> json.loads(『{"data1":{"tg_i":"1080723","contest_i":"1001","sid":"1567515287"}, "data2":{"tg_id":"1080723","contest_id":"1001","sid":"1567515287"},"total":"2"}』)
{u』total』: u』2′, u』data1′: {u』sid』: u』1567515287′, u』contest_i』: u』1001′, u』tg_i』: u』1080723′}, u』data2′: {u』tg_id』: u』1080723′, u』contest_id』: u』1001′, u』sid』: u』1567515287′}}

【總結】
折騰json的話,前提要了解json的語法和規則。
其次才是用某種語言去處理json。

10. python中處理json數據,謝謝!!

親測 樓上的答案完全正確
小建議:排序那裡不用轉成列表,字典可以直接排序:
print sorted(result.items(), key=lambda x:x[1],reverse=True)[:5]

熱點內容
會員過期緩存的能看嗎不聯網 發布:2025-01-12 21:16:47 瀏覽:768
演算法工作原理 發布:2025-01-12 20:36:38 瀏覽:25
網路訪問監控軟體 發布:2025-01-12 20:26:57 瀏覽:466
養羊啦源碼 發布:2025-01-12 20:25:48 瀏覽:571
軒逸朗逸哪個配置最好 發布:2025-01-12 20:10:00 瀏覽:50
主板存儲器分 發布:2025-01-12 20:04:46 瀏覽:377
資料庫邏輯運算 發布:2025-01-12 20:03:54 瀏覽:572
javawindows伺服器搭建 發布:2025-01-12 19:59:37 瀏覽:571
linux關閉iptables 發布:2025-01-12 19:58:49 瀏覽:151
伺服器電腦名字改了影響資料庫嗎 發布:2025-01-12 19:58:44 瀏覽:653