Hướng dẫn python json set value by key - python json đặt giá trị bằng khóa

38

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi chưa quen với Python và tôi đang chơi với dữ liệu JSON. Tôi muốn lấy dữ liệu JSON từ một tệp và thêm vào dữ liệu đó là giá trị khóa JSON "Khi đang bay".

Đó là, json_file của tôi chứa dữ liệu JSON giống như sau:

{"key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}

Tôi muốn thêm phần giá trị khóa "ADDED_KEY": "ADDED_VALUE" vào dữ liệu trên để sử dụng JSON sau trong tập lệnh của tôi:

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}

Tôi đang cố gắng viết một cái gì đó giống như sau đây để thực hiện những điều trên:

import json

json_data = open(json_file)
json_decoded = json.load(json_data)

# What I have to make here?!

json_data.close()

Hướng dẫn python json set value by key - python json đặt giá trị bằng khóa

Martineau

Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges

Hỏi ngày 16 tháng 4 năm 2014 lúc 13:58Apr 16, 2014 at 13:58

Đối tượng

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
0 của bạn là một từ điển Python; Bạn có thể chỉ cần thêm khóa của mình vào đó, sau đó mã lại và viết lại tệp:

import json

with open(json_file) as json_file:
    json_decoded = json.load(json_file)

json_decoded['ADDED_KEY'] = 'ADDED_VALUE'

with open(json_file, 'w') as json_file:
    json.dump(json_decoded, json_file)

Tôi đã sử dụng các đối tượng tệp mở làm Trình quản lý ngữ cảnh ở đây (với câu lệnh

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
1) để Python tự động đóng tệp khi hoàn thành.

Đã trả lời ngày 16 tháng 4 năm 2014 lúc 14:01Apr 16, 2014 at 14:01

Martijn Pieters ♦ Martijn PietersMartijn Pieters

991K276 Huy hiệu vàng3905 Huy hiệu bạc3254 Huy hiệu đồng276 gold badges3905 silver badges3254 bronze badges

2

JSON trở về từ json.loads () hoạt động giống như danh sách/từ điển python bản địa:

import json

with open("your_json_file.txt", 'r') as f:
    data = json.loads(f.read()) #data becomes a dictionary

#do things with data here
data['ADDED_KEY'] = 'ADDED_VALUE'

#and then just write the data back on the file
with open("your_json_file.txt", 'w') as f:
    f.write(json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')))
#I added some options for pretty printing, play around with them!

Để biết thêm thông tin, hãy xem tài liệu chính thức

Đã trả lời ngày 16 tháng 4 năm 2014 lúc 14:38Apr 16, 2014 at 14:38

0xff0xff0xff

Phù hiệu bằng đồng 11122 bronze badges

Bạn có thể làm

json_decoded['ADDED_KEY'] = 'ADDED_VALUE'

HOẶC

json_decoded.update({"ADDED_KEY":"ADDED_VALUE"})

hoạt động độc đáo nếu bạn muốn thêm nhiều hơn một cặp khóa/giá trị.

Tất nhiên, bạn có thể muốn kiểm tra sự tồn tại của thêm_Key trước - phụ thuộc vào nhu cầu của bạn.

Và tôi giả sử bạn muốn có thể muốn lưu dữ liệu đó trở lại tệp

json.dump(json_decoded, open(json_file,'w'))

Đã trả lời ngày 16 tháng 4 năm 2014 lúc 14:09Apr 16, 2014 at 14:09

BSOISTBSOISTbsoist

7653 Huy hiệu bạc10 Huy hiệu đồng3 silver badges10 bronze badges

3


Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
7 để thay đổi bộ tách mặc định:


json.dumps (x, thụt lề = 4, dấu tách = (".", "=")))

Đặt hàng kết quả

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)


Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
7 để thay đổi bộ tách mặc định:

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)

Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:
x =  '{ "name":"John", "age":30, "city":"New York"}'

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
7 để thay đổi bộ tách mặc định:
y = json.loads(x)

json.dumps (x, thụt lề = 4, dấu tách = (".", "=")))
print(y["age"])

Hãy tự mình thử »


Đặt hàng kết quả

Phương thức

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
4 có các tham số để đặt hàng các khóa trong kết quả:

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)

Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:
x = {
  "name": "John",
  "age": 30,
  "city": "New York"
}

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
7 để thay đổi bộ tách mặc định:
y = json.dumps(x)

json.dumps (x, thụt lề = 4, dấu tách = (".", "=")))
print(y)

Hãy tự mình thử »



Đặt hàng kết quả

  • Phương thức
    {"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
    
    4 có các tham số để đặt hàng các khóa trong kết quả:
  • Sử dụng tham số
    {"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
    
    9 để chỉ định nếu kết quả có nên được sắp xếp hay không:
  • json.dumps (x, thụt lề = 4, sort_keys = true)
  • JSON là một cú pháp để lưu trữ và trao đổi dữ liệu.
  • int
  • float
  • 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
    {"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
    
    2, có thể được sử dụng để làm việc với dữ liệu JSON.

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)

Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:
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))

Hãy tự mình thử »


Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
7 để thay đổi bộ tách mặc định:

json.dumps (x, thụt lề = 4, dấu tách = (".", "=")))Đặt hàng kết quả
Phương thức
{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
4 có các tham số để đặt hàng các khóa trong kết quả:
Sử dụng tham số
{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
9 để chỉ định nếu kết quả có nên được sắp xếp hay không:
json.dumps (x, thụt lề = 4, sort_keys = true)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 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
{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
2, có thể được sử dụng để làm việc với dữ liệu JSON.
Nhập mô -đun JSON:
Nhập JSONNhập mô -đun JSON:
Nhập JSONParse 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
{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
3.
Chuyển đổi từ JSON sang Python:
Nhập JSON# một số json: x = & nbsp; '{"Tên": "John", "Tuổi": 30, "Thành phố": "New York"}'

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)

Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:
  "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))

Hãy tự mình thử »


Định dạng kết quả

Ví dụ trên in một chuỗi JSON, nhưng không dễ đọc lắm, không có vết lõm và ngắt dòng.

Phương thức

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
4 có các tham số để đọc kết quả dễ dàng hơn:

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)

Hãy tự mình thử »

Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)

Hãy tự mình thử »


Bạn cũng có thể xác định các dấu phân cách, giá trị mặc định là (",", ":"), có nghĩa là sử dụng dấu phẩy và không gian để tách từng đối tượng, và một dấu hai chấm và một không gian để tách các khóa khỏi các giá trị:

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
7 để thay đổi bộ tách mặc định:

Thí dụ

Sử dụng tham số

{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
6 để xác định số lượng của các indents:

json.dumps (x, thụt lề = 4)

Hãy tự mình thử »