簡體   English   中英

有效的JSON可以無效的Python嗎?

[英]Can valid JSON be invalid Python?

這是一個簡單的問題,實際上只是我正在寫的東西的一個腳注:

任何有效的 JSON 是否也不是有效的 Python?

我知道反之亦然,即 Python 數據結構和標量允許各種不是 JSON 的構造。 但在大多數情況下,JSON 似乎是用於定義(某些)數據結構的 Python 語法的子集。

明顯的東西被覆蓋了。 字符串是字符串。 整數是整數。 JSON “數字”被讀取為 Python 浮點數(盡管 RFC 8259 不要求解釋與定點,例如)。 字典就是字典。 列表就是列表。

但也許某個不起眼的角落里的某些東西違反了子集關系。 比如BMP之外的Unicode的編碼有沒有直接不兼容的? 或者可能在 Unicode 代理對內?

或者可能是一些數字,其中小數點后的一些大量數字在技術上是有效的 JSON 但不是 Python? (我不這么認為,只是想想想場景)。

最明顯的是,Python 中不存在truefalsenull 它們被稱為TrueFalseNone

另外,字符串中的\/ /在json中被解釋為/ ,在Python中被解釋為\/

>>> a = '"\/"'
>>> print(a)
"\/"
>>> print(eval(a))
\/
>>> print(json.loads(a))
/

是的,您是對的,每個有效的 JSON 都可以在 Python 中處理。 Python 是一種完整的語言,而 JSON 是一種存儲數據的方式(可能是序列化?)。 通常,一種語言將支持 JSON object 可以表示的所有內容。

肯定會有不同的表示,就像 JSON 中的trueTrue中一樣。

Since, JSON is way of storing data, and we can also pass it around HTTP requests, which are always processed by some server side language, which is expected to handle the JSON object.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM