簡體   English   中英

使用 python,如何將單引號替換為雙引號

[英]Using python, How to replace single quotes to double quotes

我在雙引號中輸入,在處理一些操作后需要在雙引號中顯示 output ,其中它以單引號格式給出

代碼:

def movie_data(movie_list):
    mve = {}
    for k, v in movie_list.items():
        if type(v) == str:
            mve[k] = str(v) if v else None
        elif type(v) == dict:
            mve[k] = movie_data(v)
        else:
            pass
    return mve
movie_list = {"name":"Marvel","movies": {"spiderman":"Tom","Thor":"Chris"},"Review":"5star"}
movie_data(movie_list)

Output:

{'name': 'Marvel', 'movies': {'spiderman': 'Tom', 'Thor': 'Chris'}, 'Review': '5star'}

預期 Output:

{"name":"Marvel","movies": {"spiderman":"Tom","Thor":"Chris"},"Review":"5star"}

我不確定你的動機是什么,但我唯一想要的是當我希望我的字典可以復制/粘貼 JSON 文件時。 事實證明json模塊恰好在您的情況下同時執行這兩種操作:

import json                                                                     
                                                                                
                                                                                
def movie_data(movie_list):                                                     
    mve = {}                                                                    
    for k, v in movie_list.items():                                             
        if type(v) == str:                                                      
            mve[k] = str(v) if v else None                                      
        elif type(v) == dict:                                                   
            mve[k] = movie_data(v)                                              
        else:                                                                   
            pass                                                                
    return mve                                                                  
                                                                                
                                                                                
movie_list = {                                                                  
    "name": "Marvel",                                                           
    "movies": {"spiderman": "Tom", "Thor": "Chris"},                            
    "Review": "5star",                                                          
}                                                                               
print(json.dumps(movie_data(movie_list)))                                       

# {"name": "Marvel", "movies": {"spiderman": "Tom", "Thor": "Chris"}, "Review": "5star"}

嘗試使用json package。

import json
a = movie_data(movie_list)
print(json.dumps(a))

Python 對字符串使用單引號或雙引號: "abc" == 'abc'

默認情況下, print將顯示單引號,除非字符串已經包含引號:

>>> "123"
'123'
>>> d = {'a': "b"}
>>> print(d)
{'a': 'b'}
>>> d
{'a': 'b'}

所以這些輸出是相等的。 區別來自 Python 的 print function。

>>> a = {'name': 'Marvel', 'movies': {'spiderman': 'Tom', 'Thor': 'Chris'}, 'Review': '5star'}
>>> b = {"name":"Marvel","movies": {"spiderman":"Tom","Thor":"Chris"},"Review":"5star"}
>>> a == b
True

如果打印字典,它將使用字典方法__str__將字典轉換為可打印字符串。 __str__方法是使用單引號的方法。

movie_list = {"name":"Marvel","movies": {"spiderman":"Tom","Thor":"Chris"},"Review":"5star"}
print(movie_list.__str__())

獲得雙引號的方法是:

  1. 獲取將要打印的字符串
  2. 用單引號替換雙引號

這是執行此操作的代碼:

movie_list = {"name":"Marvel","movies": {"spiderman":"Tom","Thor":"Chris"},"Review":"5star"}
movie_list_str = movie_list.__str__().replace("'", '"')
print(movie_list_str)

output 是:

{"name": "Marvel", "movies": {"spiderman": "Tom", "Thor": "Chris"}, "Review": "5star"}

暫無
暫無

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

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