Tôi đang sử dụng mô -đun JSON để chuyển đổi một loạt từ điển thành JSON nhưng tôi không chắc tại sao khi bán cho JSON các chuỗi có chứa một trích dẫn duy nhất [ví dụ: xe của cha tôi] được thoát khỏi [xe của cha tôi]. Khi tôi kiểm tra một trình xác nhận trực tuyến, nó nói rằng định dạng là sai. Tại sao đổ rác thoát ra khi nó không đúng?
Tôi đã cố gắng thay thế các chuỗi bằng cách sử dụng thay thế nhưng nó không hành động của chúng. Đó sẽ là một giải pháp hợp lệ? Tại sao không hoạt động sau đó Snipped
formatted_json = json.dumps[OrderedDict[[["nodes", json_graph['nodes']], ["links", json_graph['links']]]]].replace['\'',"'"]
Thanks!
Đã hỏi ngày 4 tháng 3 năm 2017 lúc 13:34Mar 4, 2017 at 13:34
2
Bạn có thể thấy đại diện giá trị từ trình thông dịch Python. Nếu bạn in giá trị hoặc lưu trữ nó trong một tệp, bạn sẽ thấy hành vi chính xác.
>>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
Đã trả lời ngày 4 tháng 3 năm 2017 lúc 13:39Mar 4, 2017 at 13:39
JuniorCompressorJuniorCompressorJuniorCompressor
Huy hiệu vàng 19.3k44 gold badges28 silver badges57 bronze badges
1
Gần đây tôi đã có một chút bởi một trường hợp cạnh [điều đó đáng ngạc nhiên đã không xảy ra sớm hơn]
Đây là đối tượng Python của tôi:
example = {
"hello" : """This is an example object I am using some 'single quotes' and "double quotes"."""
}
Đầu ra của SimpleJson là chuỗi JSON được hình thành hoàn hảo này:
encoded = json.dumps[example]
print encoded
{"hello": "This is an example object I am using some 'single quotes' and \"double quotes\"."}
Nhưng có một vấn đề với đầu ra dumps
này-như một chuỗi RAW, nó không tương thích với JavaScript-các trích dẫn đơn phá vỡ nó:
var example = '{"hello": "This is an example object I am using some 'single quotes' and \"double quotes\"."}';
Vì vậy, để làm việc với điều này trong JavaScript, chúng ta cần phải mã hóa thêm. Tuy nhiên, làm như vậy dẫn đến một chuỗi được tìm thấy hai lần:
encoded = json.dumps[example].encode['string-escape']
print encoded
{"hello": "This is an example object I am using some \'single quotes\' and \\"double quotes\\"."}
Sẽ rất thuận tiện nếu SimpleJson ủng hộ một đối số để thoát khỏi các trích dẫn đơn:
encoded = json.dumps[example, escape_single_quotes=True]
print encoded
{"hello": "This is an example object I am using some \'single quotes\' and \"double quotes\"."}
"" "
Đơn giản là nhiều "dòng trực tuyến2020-12-07 00:32 by imeuropa, last changed 2022-04-11 14:59 by admin. This issue is now closed.
mẫu \ mẫu \ mẫu |
Hơn nữa, tất cả các trích dẫn kép của định dạng JSON thực tế được thoát ra bằng một dấu gạch chéo ngược. |
Các chuỗi trong JSON được chỉ định bằng cách sử dụng báo giá kép, tức là, ". Nếu các chuỗi được đặt bằng cách sử dụng các trích dẫn đơn, thì JSON là một JSON không hợp lệ. | Số phát hành42583 | Được tạo vào ngày 2020-12-07 00:32 bởi Imeuropa, đã thay đổi lần cuối năm 2022-04-11 14:59 bởi quản trị viên. Vấn đề giờ đã kết thúc. | Tin nhắn [2] |
MSG382615 - [Xem] | Tác giả: Kjartan Hrafnkelsson [Imeuropa] | Được tạo vào ngày 2020-12-07 00:32 bởi Imeuropa, đã thay đổi lần cuối năm 2022-04-11 14:59 bởi quản trị viên. Vấn đề giờ đã kết thúc. | Tin nhắn [2] stage: resolved |
MSG382615 - [Xem] | Tác giả: Kjartan Hrafnkelsson [Imeuropa] | Được tạo vào ngày 2020-12-07 00:32 bởi Imeuropa, đã thay đổi lần cuối năm 2022-04-11 14:59 bởi quản trị viên. Vấn đề giờ đã kết thúc. | Tin nhắn [2] |
MSG382615 - [Xem] | Tác giả: Kjartan Hrafnkelsson [Imeuropa] | Được tạo vào ngày 2020-12-07 00:32 bởi Imeuropa, đã thay đổi lần cuối năm 2022-04-11 14:59 bởi quản trị viên. Vấn đề giờ đã kết thúc. | Tin nhắn [2] messages: + msg382616 |
MSG382615 - [Xem] | Tác giả: Kjartan Hrafnkelsson [Imeuropa] | Ngày: 2020-12-07 00:32 |
Sử dụng
7 để thoát khỏi trích dẫn trong PythonOutline>>> import json >>> json.dumps["a'b"] '"a\'b"' >>> print json.dumps["a'b"] "a'b"
You can use0 to escape quotes in Python.>>> import json >>> json.dumps["a'b"] '"a\'b"' >>> print json.dumps["a'b"] "a'b"
If you want to delay python program by 500 ms, then you need to pass 0.5 as parameter to sleep method.
Ngay cả hàm
8 từ thư viện JSON, lấy một chuỗi và trả về một chuỗi mới bằng cách thêm hai dấu gạch chéo ngược ở bất cứ nơi nào nó gặp phải các trích dẫn kép. Vì hai dấu gạch chéo ngược chỉ được thêm một lần được coi là một chuỗi thoát và cái còn lại được in.='Don\'t go'>>> import json >>> json.dumps["a'b"] '"a\'b"' >>> print json.dumps["a'b"] "a'b"
Mẫu mẫu \ mẫu \ mẫu[s]//prints Don't go
Chúng ta có thể sử dụng các kết hợp các ký tự khác nhau với
>>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
0 để chỉ định các ý nghĩa thay thế. Ví dụ: example = {
"hello" : """This is an example object I am using some 'single quotes' and "double quotes"."""
}
0 truyền tải một dòng mới, example = {
"hello" : """This is an example object I am using some 'single quotes' and "double quotes"."""
}
1 tạo ra một tab ngang, v.v.Trong Python, ký tự Backslash
>>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
0 được sử dụng để truyền tải các chuỗi thoát. Nhân vật mà chúng tôi muốn trốn thoát được thêm vào ngay sau sự chéo ngược này.Trong bài viết này, chúng tôi sẽ thảo luận về cách thoát khỏi trích dẫn trong Python.
Mục lục
- Sử dụng \ để thoát khỏi trích dẫn trong Python
- Sử dụng \ với thay thế [] để thoát khỏi trích dẫn trong Python
- Sử dụng json.dumps để thoát khỏi trích dẫn trong Python
- Sử dụng ba trích dẫn đơn hoặc đôi để thoát khỏi báo giá trong Python
- Sử dụng R để bao gồm \ và trích dẫn trong chuỗi
Sử dụng >>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
0 để thoát khỏi trích dẫn trong Python
>>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
Bây giờ hãy tưởng tượng rằng bạn có một chuỗi mà bạn muốn in. Chuỗi này chứa một trích dẫn duy nhất dưới dạng dấu nháy đơn. Trình biên dịch sẽ giải thích điều này một cách khác nhau và nêu ra một lỗi và hiển thị cú pháp là không hợp lệ.
Ví dụ,
Nhập JSONjson s='Don'tusethisway'='Don'tusethisway' print[s] [s] |
Bây giờ vì Python sử dụng cả trích dẫn đơn và dấu ngoặc kép để lưu trữ giá trị chuỗi, chúng ta có thể sử dụng trích dẫn kép và vấn đề trên sẽ biến mất và nếu chúng ta giải quyết cùng một vấn đề cho trích dẫn kép thì chúng ta có thể gửi chúng trong các trích dẫn đơn. Tuy nhiên, đây không phải là một giải pháp lý tưởng cho vấn đề.
Đối với các tình huống như vậy, chúng ta có thể sử dụng trình tự thoát. Chúng ta có thể sử dụng cả trích dẫn đơn hoặc dấu ngoặc kép sau một ký tự phản ứng dữ dội để đưa chúng vào một chuỗi.
Xem mã sau.
s = 'don \' t sử dụng theo cách này '='Don\'t use this way' S1 = "Mẫu \" Mẫu \ "Mẫu"="Sample \"Sample\" Sample" print[s,s1] [s,s1] |
Output:
Don lồng sử dụng theo cách này mẫu mẫu ”mẫu”
Sử dụng >>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
0 với >>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
4 để thoát khỏi trích dẫn trong Python
>>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
>>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
Chúng ta cũng có thể sử dụng hàm
>>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
4 để chèn các trích dẫn thoát vào một chuỗi. Chúng tôi chỉ cần thay thế các trích dẫn bằng >>> import json
>>> json.dumps["a'b"]
'"a\'b"'
>>> print json.dumps["a'b"]
"a'b"
6.Ví dụ,
Nhập JSON='sample "sample" sample' Bây giờ vì Python sử dụng cả trích dẫn đơn và dấu ngoặc kép để lưu trữ giá trị chuỗi, chúng ta có thể sử dụng trích dẫn kép và vấn đề trên sẽ biến mất và nếu chúng ta giải quyết cùng một vấn đề cho trích dẫn kép thì chúng ta có thể gửi chúng trong các trích dẫn đơn. Tuy nhiên, đây không phải là một giải pháp lý tưởng cho vấn đề.=s.replace['"','\"'] print[s] [s] |
Output:
Đối với các tình huống như vậy, chúng ta có thể sử dụng trình tự thoát. Chúng ta có thể sử dụng cả trích dẫn đơn hoặc dấu ngoặc kép sau một ký tự phản ứng dữ dội để đưa chúng vào một chuỗi.
Xem mã sau.
s = 'don \' t sử dụng theo cách này '
Ví dụ,
Nhập JSONjson Nhập JSON='sample "sample" sample' print[json.dumps[s]] [json.dumps[s]] |
Output:
Bây giờ vì Python sử dụng cả trích dẫn đơn và dấu ngoặc kép để lưu trữ giá trị chuỗi, chúng ta có thể sử dụng trích dẫn kép và vấn đề trên sẽ biến mất và nếu chúng ta giải quyết cùng một vấn đề cho trích dẫn kép thì chúng ta có thể gửi chúng trong các trích dẫn đơn. Tuy nhiên, đây không phải là một giải pháp lý tưởng cho vấn đề.
Đối với các tình huống như vậy, chúng ta có thể sử dụng trình tự thoát. Chúng ta có thể sử dụng cả trích dẫn đơn hoặc dấu ngoặc kép sau một ký tự phản ứng dữ dội để đưa chúng vào một chuỗi.
Sử dụng ba trích dẫn đơn hoặc đôi để thoát khỏi báo giá trong Python
Sử dụng R để bao gồm \ và trích dẫn trong chuỗi
Ví dụ,
s="""=""" Nhập JSON "Multi"Multi" 'Line' Bây giờ vì Python sử dụng cả trích dẫn đơn và dấu ngoặc kép để lưu trữ giá trị chuỗi, chúng ta có thể sử dụng trích dẫn kép và vấn đề trên sẽ biến mất và nếu chúng ta giải quyết cùng một vấn đề cho trích dẫn kép thì chúng ta có thể gửi chúng trong các trích dẫn đơn. Tuy nhiên, đây không phải là một giải pháp lý tưởng cho vấn đề. Đối với các tình huống như vậy, chúng ta có thể sử dụng trình tự thoát. Chúng ta có thể sử dụng cả trích dẫn đơn hoặc dấu ngoặc kép sau một ký tự phản ứng dữ dội để đưa chúng vào một chuỗi."" print[s] [s] |
Output:
Xem mã sau.
“Multi”
‘Line’
String
s = 'don \' t sử dụng theo cách này '
S1 = "Mẫu \" Mẫu \ "Mẫu"
Don lồng sử dụng theo cách này mẫu mẫu ”mẫu”
Ví dụ,
Nhập JSON=r'sample \'sample\' sample' print[s] [s] |
Output:
Bây giờ vì Python sử dụng cả trích dẫn đơn và dấu ngoặc kép để lưu trữ giá trị chuỗi, chúng ta có thể sử dụng trích dẫn kép và vấn đề trên sẽ biến mất và nếu chúng ta giải quyết cùng một vấn đề cho trích dẫn kép thì chúng ta có thể gửi chúng trong các trích dẫn đơn. Tuy nhiên, đây không phải là một giải pháp lý tưởng cho vấn đề.
Đối với các tình huống như vậy, chúng ta có thể sử dụng trình tự thoát. Chúng ta có thể sử dụng cả trích dẫn đơn hoặc dấu ngoặc kép sau một ký tự phản ứng dữ dội để đưa chúng vào một chuỗi.
Xem mã sau.