1. 程式人生 > >python基礎:json.loads(str)出現錯誤總結

python基礎:json.loads(str)出現錯誤總結

 1 >>> import json  
 2 >>> test="{'data':'123'}"  
 3 >>> result=json.loads(test)  
 4 Traceback (most recent call last):  
 5   File "<stdin>", line 1, in <module>  
 6   File "d:\Anaconda3\lib\json\__init__.py", line 319, in loads  
 7     return _default_decoder.decode(s)  
8 File "d:\Anaconda3\lib\json\decoder.py", line 339, in decode 9 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 10 File "d:\Anaconda3\lib\json\decoder.py", line 355, in raw_decode 11 obj, end = self.scan_once(s, idx) 12 json.decoder.JSONDecodeError: Expecting property name enclosed in
double quotes: 13 line 1 column 2 (char 1)

原因在於:字串裡用單引號來標識字元。

解決辦法如下:將字串裡的單引號替換成雙引號

1 >>> import re  
2 >>> test=re.sub('\'','\"',test)  
3 >>> result=json.loads(test)  
4 >>> result['data']  
5 '123'  

對於帶u'的字串,u也要去掉:

 1 >>> c=f.read()  
 2 >>> c  
3 "{u'meta': {u'code': 200, u'requestId': u'5815f6739fb6b77494061e19'}, u'response 4 ': {u'tips': {u'count': 0, u'items': []}}}" 5 >>> d=re.sub("u'","\"",c) 6 >>> d 7 '{"meta\': {"code\': 200, "requestId\': "5815f6739fb6b77494061e19\'}, "response\ 8 ': {"tips\': {"count\': 0, "items\': []}}}' 9 >>> d=re.sub("'","\"",d) 10 >>> d 11 '{"meta": {"code": 200, "requestId": "5815f6739fb6b77494061e19"}, "response": {" 12 tips": {"count": 0, "items": []}}}' 13 >>> json.loads(d) 14 {'response': {'tips': {'items': [], 'count': 0}}, 'meta': {'requestId': '5815f67 15 39fb6b77494061e19', 'code': 200}}

相關推薦

python基礎json.loads(str)出現錯誤總結

1 >>> import json 2 >>> test="{'data':'123'}" 3 >>> result=json.loads(test) 4 Traceback (most recent call last): 5

Python基礎計算list中各個元素出現的頻率

方法一 from collections import Counter list = [59, 138, 13, 1367, 158, 35, 572, 43, 10, 34, 572, 572, 44, 12, 1345, 7, 21, 59, 10] list.sort()

[python]json.loads 幾種錯誤 解決方案

1、 json.loads Python錯誤: 'utf8' codec can't decode byte ... 由於需求,要用python讀取網頁返回json,並取得其中的資料但是卻遇到以上編碼的問題。 終於找到了解決方案: 我們只需要對字串進行unico

Python基礎十七、str 字符串

數據 少量數據 使用 spa pri 翻轉 fin 位置 hello str字符串(儲存少量數據) 1. 把字符連成串,在python中用‘,",‘‘‘,"""引起來的內容被稱為字符串 2. 索引:索引就是下標,從0開始 3. 用 [] 進行索引 strExam

python基礎循環語句和判斷語句

python 語句 循環 判斷 小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------謝謝您的參考,如有疑問,歡迎交流一、 python語句塊和縮進縮進是Py

python基礎元組、字典、深淺拷貝與函數

dictionary python tuple 函數 開發 小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------謝謝您的參考,如有疑問,歡迎交流一、 元

Python基礎Python函數、文件操作、遞歸

文件處理 r+ lose 獲取 表示 pyw 全部 truncate 模塊 函數參數函數參數包括位置參數,關鍵字參數,動態參數(*args, **args)三種。傳參的過程是形式參數的賦值。*args傳入的參數是元組形式,**args傳入的參數是字典形式。示例代碼如下:(這

Python基礎之進程

log 進程創建 異步 for cnblogs 分享 cep 執行兩次 區別 一、進程 1.什麽是進程 程序並不能單獨運行,只有將程序裝載到內存中,系統為它分配資源才能運行,而這種執行的程序就稱之為進程。 正在進行的一個過程或者說一個任務。而負責執行任務則是cpu 2.進程

Python基礎day10

開啟 exceptio 線程 args [0 brush Coding nco tin 一、python並發編程之多線程 1.1 threading模塊 使用方式 from threading import Thread #!/usr/bin/python # -*

python基礎python運算優先級

不用 邏輯 排行榜 python基礎 翻轉 比較運算符 否則 出錯 運算符 Python的優先級排行榜: 優先級:1.函數、尋址、下表 2.冪運算 ** 3.翻轉運算~ 4.正負號,正負號要緊挨操作數,否則會出錯,在python3中可以不用

python基礎元組的使用

元組 遍歷 方法元組的定義。使用( )來定義。null_tuple = () #定義一個空元組one_element = (‘one‘, ) #定義一個元素的元組,註意:只有一個元素後面必須帶逗號元組的修改、增加和刪除元素。元組是不可以修改,增加和刪除元素的!。但,

Python基礎列表的使用

list 列表 淺復制 pop insert remove extend一、定義:list列表,使用[ ]定義,可以嵌套元組、列表、字典。相比元組,除了定義使用中括號,還多出了增加、修改、刪除元素的方法。Python裏經常使用的數據結構。二、訪問列表:exp_list = [‘one‘, ‘this‘, ‘i

python基礎集合-set()

集合一、定義:集合是一個無序的,沒有重復元素的序列。可以用來去重。使用{},和set()定義空集必須使用set()來定義可以set任何可叠代的對象string = ‘this is string!‘ num = range(1, 11) list = [2, 4, 6, 8, 10,11, 12 ] set

python基礎裝飾器

裝飾器一、定義: 是一個傳入值是函數,返回值也是函數的高階函數。二、作用: 不改變原函數的代碼和調用方式,增加新的功能。三、實例: 把兩個函數earth()和moon()添加print(‘They are in the solar system!‘)

Python基礎Python函數

python函數 傳遞參數 函數定義 函數調用 一、函數是python中使用最高的對象。 函數定義的簡單規則 : 1、用def定義,接著是函數名和參數和冒號,格式: 2、函數內部代碼塊需要縮進 3、使用return返回函數值,默認返回值是

python基礎多進程講解

linu () int 平臺 else tpi style linux 執行 fork的使用方法: import os import time # 主進程執行到os.fork()會產生一個子進程。ret>0,代表主進程;ret=0,代表子進程 ret=os.fo

Python基礎Python類(真累~)

理解 技術 rowspan num 重新 說明 區分 第一個 構造 類的聲明:一、類的屬性(私有屬性和公有屬性)(類屬性)二、類的方法(構造方法、析構方法、自定義方法、特殊成員方法)(靜態方法、類方法、類屬性)三、類的繼承(方法和屬性的繼承,方法的重構)(抽象類,多重繼承)

Python基礎反射

-s strip als class bar color 定義 object left 反射就是根據提供的字符串,匹配對象(類、模塊等)裏面的方法。達到動態調用的目的。主要有四個成員。getattr、hasattr、setattr、delattr 獲取成員、檢查成員、設置

Python基礎語法 - json & pickle

amp pycharm ext con can 網絡傳輸 不兼容 rmp attr 情景 例1 dic = str({‘age‘:‘18‘}) f = open(‘text‘,‘w‘) f.write(dic) f.close() 例2 f = open(‘text‘

python基礎匹配指定目錄下符合規則的文件,打印文件全路徑

python# -*- coding:utf-8 -*- #遍歷目錄樹 import os,fnmatch def all_files(root, patterns=‘*‘, single_level=False, yield_folder=False): # 將模式從字符串中取出放入列表中