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épChú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épjson. 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"}
7Nế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ỉ địnhCá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"}
3Số 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ả haiTrong 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"}
7Bướ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"}
2như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"}
5protips 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