簡體   English   中英

為什么 python 會生成一個字符串 json 文件?

[英]Why does python generate a string json file?

我想從 api 請求和另一個 json 文件中檢索到的數據生成 json 文件。 問題是在我生成的 json 文件中,大括號被雙引號包圍,而且我到處都有“\n”和“\r”。 您是否有正確生成 json 文件的解決方案?

我的一段 python 代碼:

def write_json(data, filename='data.json'):
    with open(filename, 'w', encoding='utf-8') as wf:
        json.dump(data, wf, ensure_ascii=False, indent=4)

# JSON file to fetch IDs
with open('sast-projects.json', 'r', encoding='utf-8') as f:
    projects = json.load(f)

with open('data.json') as json_file:
    data = json.load(json_file)
    temp = data['data']
    
    for project in projects:
        result_detail = requests.get(url_detail + str(project['id']), headers=header_detail)
        temp.append(result_detail.text)
        write_json(data)

我的輸出示例(data.json):

{
    "data": [
        "{\r\n  \"id\": 12,\r\n  \"teamId\": 34,\r\n  \"owner\": \"Some text\",\r\n  \"name\": \"Some text\"\r\n    }\r\n  ]\r\n}",
        "{\r\n  \"id\": 98,\r\n  \"teamId\": 65,\r\n  \"owner\": \"Some text\",\r\n  \"name\": \"Some text\"\r\n    }\r\n  ]\r\n}"
    ]
}

將 result_detail.text 更改為result_detail.text result_detail.json() 您正在嘗試存儲原始 json 字符串而不是 json object,這會導致雙重編碼問題。

暫無
暫無

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

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