JSON là một cú pháp để lưu trữ và trao đổi dữ liệu.
JSON là văn bản, được viết với ký hiệu đối tượng JavaScript.
JSON trong Python
Python có một gói tích hợp có tên json
, có thể được sử dụng để làm việc với dữ liệu JSON.
Thí dụ
Nhập mô -đun JSON:
Nhập JSON
Parse JSON - Chuyển đổi từ JSON sang Python
Nếu bạn có chuỗi JSON, bạn có thể phân tích nó bằng cách sử dụng phương thức json.loads[]
.
Thí dụ
Nhập mô -đun JSON:
Nhập JSON
Parse JSON - Chuyển đổi từ JSON sang Python
x = '{ "name":"John", "age":30, "city":"New York"}'
Nếu bạn có chuỗi JSON, bạn có thể phân tích nó bằng cách sử dụng phương thức json.loads[]
.
y = json.loads[x]
Chuyển đổi từ JSON sang Python:
print[y["age"]]
Nhập JSON
# một số json: x = & nbsp; '{"Tên": "John", "Tuổi": 30, "Thành phố": "New York"}'
# parse x: y = json.loads [x]
Thí dụ
Nhập mô -đun JSON:
Nhập JSON
Parse JSON - Chuyển đổi từ JSON sang Python
x = {
"name": "John",
"age": 30,
"city": "New York"
}
Nếu bạn có chuỗi JSON, bạn có thể phân tích nó bằng cách sử dụng phương thức json.loads[]
.
y = json.dumps[x]
Chuyển đổi từ JSON sang Python:
print[y]
Nhập JSON
# một số json: x = & nbsp; '{"Tên": "John", "Tuổi": 30, "Thành phố": "New York"}'
- # parse x: y = json.loads [x]
- # Kết quả là một từ điển Python: in [y ["tuổi"]]]
- Hãy tự mình thử »
- Chuyển đổi từ Python sang JSON
- int
- float
- Nếu bạn có một đối tượng Python, bạn có thể chuyển đổi nó thành chuỗi JSON bằng cách sử dụng phương thức
json.dumps[]
. - Chuyển đổi từ Python sang JSON:
- # một đối tượng python [dict]: x = {& nbsp; "Tên": "John", & nbsp; "Tuổi": 30, & NBSP; "Thành phố": "New York"}
Thí dụ
Nhập mô -đun JSON:
Nhập JSON
Parse JSON - Chuyển đổi từ JSON sang Python
print[json.dumps[["apple", "bananas"]]]
print[json.dumps[["apple", "bananas"]]]
print[json.dumps["hello"]]
print[json.dumps[42]]
print[json.dumps[31.76]]
print[json.dumps[True]]
print[json.dumps[False]]
print[json.dumps[None]]
Nhập JSON
# một số json: x = & nbsp; '{"Tên": "John", "Tuổi": 30, "Thành phố": "New York"}'
Hãy tự mình thử » | Chuyển đổi từ Python sang JSON |
Nếu bạn có một đối tượng Python, bạn có thể chuyển đổi nó thành chuỗi JSON bằng cách sử dụng phương thức json.dumps[] . | Chuyển đổi từ Python sang JSON: |
# một đối tượng python [dict]: x = {& nbsp; "Tên": "John", & nbsp; "Tuổi": 30, & NBSP; "Thành phố": "New York"} | Chuyển đổi từ Python sang JSON: |
# một đối tượng python [dict]: x = {& nbsp; "Tên": "John", & nbsp; "Tuổi": 30, & NBSP; "Thành phố": "New York"} | # Chuyển đổi thành json: y = json.dumps [x] |
# Kết quả là chuỗi JSON: print [y] | Bạn có thể chuyển đổi các đối tượng Python của các loại sau, thành chuỗi JSON: |
DIGN | Bạn có thể chuyển đổi các đối tượng Python của các loại sau, thành chuỗi JSON: |
DIGN | danh sách |
Tuple | sợi dây |
ĐÚNG VẬY | Sai |
Thí dụ
Không có
Nhập JSON
Parse JSON - Chuyển đổi từ JSON sang Python
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ["Ann","Billy"],
"pets": None,
"cars": [
{"model": "BMW 230", "mpg": 27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}
print[json.dumps[x]]
Nhập JSON
# một số json: x = & nbsp; '{"Tên": "John", "Tuổi": 30, "Thành phố": "New York"}'
# parse x: y = json.loads [x]
# Kết quả là một từ điển Python: in [y ["tuổi"]]]
Thí dụ
Hãy tự mình thử »
Chuyển đổi từ Python sang JSON
Nhập JSON
# một số json: x = & nbsp; '{"Tên": "John", "Tuổi": 30, "Thành phố": "New York"}'
Thí dụ
# parse x: y = json.loads [x]
# Kết quả là một từ điển Python: in [y ["tuổi"]]]
Nhập JSON
# một số json: x = & nbsp; '{"Tên": "John", "Tuổi": 30, "Thành phố": "New York"}'
# parse x: y = json.loads [x]
Thí dụ
# Kết quả là một từ điển Python: in [y ["tuổi"]]]
Hãy tự mình thử »
Nhập JSON
var jsData = {
id: 'E1',
firstname: 'Peter',
lastname: 'Funny',
project: { id: 'P1' },
activities: [
{ id: 'A1' },
{ id: 'A2' }
]};
var jsonData = JSON.stringify[jsData];
$['#click'].click[function[]{
$.ajax[{
url: "test/",
type: "POST",
data: jsData,
dataType: "json",
success: function [data]{
console.log[data];
},
error:function[]{$['#text'].html['FATAL_ERROR']}
}]
}]
Đây là mã JS và JSDATA nên được gửi đến máy chủ [Python]. Trên máy chủ, tôi nhận được một cái gì đó như {'{id:' e1 ', FirstName:' Peter ', LastName:' Funny ', Project: {id:' p1 '}, hoạt động: [{id:' a1 '}, {{ id: 'a2'}]}; ':' '}
Có cách nào thông minh để có được chuỗi 'Dict bên trong' ra khỏi 'Dict bên ngoài' không?!
Hỏi ngày 28 tháng 4 năm 2013 lúc 15:20Apr 28, 2013 at 15:20
1
Python có một thư viện phân tích cú pháp JSON tích hợp. Thêm
import json
personString = "{'{id:'E1',firstname:'Peter',... " # This would contain your JSON string
person = json.loads[ personString ] # This will parse the string into a native Python dictionary, be sure to add some error handling should a parsing error occur
person['firstname'] # Yields 'Peter'
person['activities'] # Yields a list with the activities.
3 cung cấp chức năng phân tích cú pháp JSON cơ bản, có thể được sử dụng như sau:import json
personString = "{'{id:'E1',firstname:'Peter',... " # This would contain your JSON string
person = json.loads[ personString ] # This will parse the string into a native Python dictionary, be sure to add some error handling should a parsing error occur
person['firstname'] # Yields 'Peter'
person['activities'] # Yields a list with the activities.
Thông tin thêm ở đây: //docs.python.org/2/l Library/json.html
Đã trả lời ngày 28 tháng 4 năm 2013 lúc 15:28Apr 28, 2013 at 15:28
2
Bởi vì bạn đang sử dụng sai biến!
var jsonData = JSON.stringify[jsData];
..
$.ajax[{
..,
contentType: "application/json", //Remember to set this.
data: jsData,
^^^^^^ => Shouldn't you be passing "jsonData" here?
Khi bạn vượt qua một từ điển JavaScript đơn giản, JQuery sẽ mã hóa các khóa và giá trị theo định dạng mã hóa phần trăm. Đó là lý do tại sao bạn đang nhìn thấy chế độ bên trong như chuỗi.
Những gì bạn phải làm lý tưởng [IMO], là vượt qua chuỗi JSON thay vì chuỗi được mã hóa phần trăm một phần.
Lưu ý rằng bạn có thể sẽ phải thay đổi cách máy chủ của bạn đang đọc dữ liệu. Theo cách này, sẽ không còn có tham số yêu cầu HTTP/POST. Chỉ là một chuỗi JSON đơn giản trong phần thực thể HTTP.
Đã trả lời ngày 28 tháng 4 năm 2013 lúc 15:46Apr 28, 2013 at 15:46
UltrainStincultrainStinctUltraInstinct
42.4K12 Huy hiệu vàng78 Huy hiệu bạc102 Huy hiệu đồng12 gold badges78 silver badges102 bronze badges
1
Thay thế điều này
$['#click'].click[function[]{
$.ajax[{
url: "test/",
type: "POST",
data: jsData,
dataType: "json",
success: function [data]{
console.log[data];
},
error:function[]{$['#text'].html['FATAL_ERROR']}
}]
}]
Với cái này
$['#click'].click[function[]{
$.ajax[{
url: "test/",
type: "POST",
data: {"jsData": jsData },
dataType: "json",
success: function [data]{
console.log[data];
},
error:function[]{$['#text'].html['FATAL_ERROR']}
}]
}]
Để bây giờ bạn sẽ có thể nhận được jsdata trong yêu cầu.post.get ['jsdata'] hoặc requst.get.get ['jsdata'] và bạn chỉ cần phân tích dữ liệu mà bạn nhận được trong khóa jsdata .
Và bạn tốt để đi.
Đã trả lời ngày 23 tháng 6 lúc 12:06Jun 23 at 12:06