簡體   English   中英

如何將python中的jsonify字符串轉為json?

[英]How to convert jsonify string to json in python?

我有一個 jsonify 字符串如下。 我使用 dart (Flutter) 創建了這個字符串。 我的dart代碼如下。

 var stud_data = {"name": "John", "id": "2021MS", "total_marks": 493};
 String encoded_data = base64Url.encode(utf8.encode(stud_data.toString())); 

encoded_data 包含“e25hbWU6IEpvaG4sIGlkOiAyMDIxTVMsIHRvdGFsX21hcmtzOiA0OTN9”

我必須將它轉換為 python 中的 json。

我嘗試使用以下代碼在 json 中使用 python 進行轉換。

from base64 import urlsafe_b64decode
import json
stud_data_64="e25hbWU6IEpvaG4sIGlkOiAyMDIxTVMsIHRvdGFsX21hcmtzOiA0OTN9"
stud_data=urlsafe_b64decode(string).decode('utf-8')
stud_data_json = json.loads(stud_data)

它導致以下錯誤。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.9/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

錯誤對我來說很明顯,但我不知道如何解決。

正如每個人都提到的,您那里沒有有效的 json 字符串。 您不這樣做的原因是因為您沒有將 dart object 轉換為 json。您只是將其轉換為字符串。 將您的 dart 代碼更改為:

String encoded_data = base64Url.encode(utf8.encode(jsonEncode(stud_data)));

這樣做會給你一個有效的 json 字符串,當轉換為 base64 時,最終將是:

eyJuYW1lIjoiSm9obiIsImlkIjoiMjAyMU1TIiwidG90YWxfbWFya3MiOjQ5M30=

暫無
暫無

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

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