Chuyển đổi chuỗi trích dẫn đơn thành từ điển Python

Sử dụng phương pháp

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7 để chuyển từ điển thành chuỗi có dấu ngoặc kép, e. g.
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
8. Phương thức
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7 chuyển đổi một đối tượng Python thành một chuỗi có định dạng JSON với các khóa và giá trị chuỗi của từ điển được đặt trong dấu ngoặc kép

Chúng tôi đã sử dụng phương pháp

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7 để chuyển từ điển thành chuỗi có dấu ngoặc kép

json. phương thức kết xuất chuyển đổi một đối tượng Python thành một chuỗi có định dạng JSON

Nếu bạn cần in đẹp từ điển dưới dạng JSON, hãy đặt đối số

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
1 thành
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
2 trong lệnh gọi tới
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7

Nếu

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
1 được đặt thành một số nguyên không âm, thì các phần tử mảng JSON hoặc các thành viên đối tượng sẽ được in đẹp với mức thụt lề đã chỉ định

Các khóa trong từ điển và các giá trị chuỗi được bao bọc trong dấu ngoặc kép khi được chuyển đổi thành chuỗi JSON

Hai vấn đề với câu trả lời được đưa ra cho đến nay, ví dụ: if , một luồng JSON không chuẩn như vậy. Bởi vì sau đó người ta có thể phải diễn giải một chuỗi đến (không phải từ điển python)

Nội dung chính Hiển thị

  • JSONDecodeError. Yêu cầu tên thuộc tính được đặt trong dấu ngoặc kép. dòng 1 cột 2 (char 1) #
  • Sự kết luận #
  • Tôi có thể sử dụng dấu ngoặc đơn trong JSON không?
  • Làm cách nào để bạn chuyển đổi một chuỗi thành một đối tượng JSON trong Python?
  • JSON có sử dụng dấu ngoặc kép hay dấu ngoặc đơn không?
  • Làm cách nào để bạn thoát khỏi một trích dẫn trong JSON?

Số 1 -

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
1. Với Python3. 7. + và sử dụng conda tôi không thể cài đặt demjson vì rõ ràng là nó không hỗ trợ Python >3. 5 hiện tại. Vì vậy, tôi cần một giải pháp với các phương tiện đơn giản hơn, chẳng hạn như
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
2và/hoặc
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
3

Số 2 -

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
2 &
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
3. Nếu một JSON vừa được trích dẫn đơn vừa chứa một chuỗi có ít nhất một giá trị, thì giá trị này lại chứa các trích dẫn đơn, thì giải pháp đơn giản nhưng thiết thực duy nhất mà tôi tìm thấy là áp dụng cả hai

Trong ví dụ sau, chúng tôi giả sử

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
6 là đối tượng chuỗi JSON đến

>>> line = str({'abc':'008565','name':'xyz','description':'can control TV\'s and more'})

Bước 1. chuyển đổi chuỗi đến thành từ điển bằng cách sử dụng

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7
Bước 2. áp dụng
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
3 cho nó để chuyển đổi đáng tin cậy các khóa và giá trị, nhưng không chạm vào nội dung của các giá trị.

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}

Chỉ riêng

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
3 sẽ không thực hiện được công việc vì nó không diễn giải JSON mà chỉ nhìn thấy chuỗi. Tương tự cho
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7. mặc dù nó giải thích chính xác JSON (từ điển), nhưng nó không chuyển đổi những gì chúng ta cần

Đôi khi, bạn có thể nhận được điều này. -

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
2

nhưng

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
21 sẽ từ chối điều này vì json yêu cầu dấu ngoặc kép. Bạn có thể sử dụng
>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7 để thay thế

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
5

protips liên quan

chuyển đổi tệp dữ liệu json trích dẫn đơn thành tệp dữ liệu json trích dẫn kép (không xáo trộn dấu ngoặc kép bên trong)

Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn. Tìm hiểu thêm về các ký tự Unicode hai chiều

__author__ = 'mbrzustowicz'# siêu dữ liệu. json có dấu nháy đơn như thế này# {'asin'. 'B00M0AEPXG', 'imUrl'. 'http. //ecx. hình ảnh-amazon. com/hình ảnh/I/51hcXTUeHLL. _BO2,204,203,200_. }# nên chiến lược là đọc từng dòng dưới dạng chuỗi và kết xuất vào tệp json THỰC SỰnhập json . json"import astfr=open("/Users/mbrzustowicz/Downloads/metadata.json" ) fw=mở("/Users/mbrzustowicz/amazon_product_metadata.json" , "w" ) cho line in fr:json_dat = json . kết xuất ( ast . literal_eval ( dòng )) . = json.tải ( json_dat ) json . .kết xuất ( dict_dat , fw . )fw.viết ( " \n . )fw.đóng () fr . đóng ()

JSONDecodeError. Yêu cầu tên thuộc tính được đặt trong dấu ngoặc kép. dòng 1 cột 2 (char 1) #

Python "JSONDecodeError. Yêu cầu tên thuộc tính được đặt trong dấu ngoặc kép. dòng 1 cột 2 (ký tự 1)" xảy ra khi chúng tôi cố phân tích một chuỗi JSON không hợp lệ (e. g. các khóa hoặc giá trị được trích dẫn đơn hoặc dấu phẩy ở cuối). Sử dụng phương pháp

>>> import ast
>>> import json
>>> print(json.dumps(ast.literal_eval(line)))
{"abc": "008565", "name": "xyz", "description": "can control TV's and more"}
7 để giải quyết lỗi

Bạn có thể chuyển đổi một chuỗi thành từ điển trong Python không?

Bạn có thể dễ dàng chuyển đổi chuỗi python sang từ điển bằng cách sử dụng chức năng sẵn có của vô số thư viện json của python . Trước khi sử dụng phương pháp này, bạn phải nhập thư viện json trong python bằng từ khóa “nhập”.

Chúng ta có thể sử dụng dấu ngoặc đơn trong từ điển Python không?

Từ điển không chứa dấu nháy đơn. .
Điều này không hoạt động nếu một số giá trị dict của bạn là bool và bạn dự định sử dụng chuỗi kết quả trong một số ngữ cảnh khác, nơi nó sẽ được đánh giá là mã Python. – akhomenko. .
Và nếu bạn sử dụng UTF-8, bạn cần ensure_ascii=False. – David Beauchemin. .
Nếu bạn không muốn json

Làm cách nào bạn có thể chuyển đổi chuỗi 1 thành số nguyên 1 trong Python?

Trong Python, một chuỗi có thể được chuyển đổi thành một số nguyên bằng cách sử dụng hàm int() tích hợp sẵn . Hàm int() lấy bất kỳ kiểu dữ liệu python nào và chuyển đổi nó thành một số nguyên.