Python3 simplejson转储将Django查询dict键转换为小写

2024-06-02 10:56:59 发布

您现在位置:Python中文网/ 问答频道 /正文

python 3.7 我有一个POST请求,它在django中返回一个查询dict,如下所示

<QueryDict: {'tbl': ['[{"Unnamed: 0":"0","RecordID":"0","ID":"1","Site Ser
ved":"51st Street Academy","Program":"Outreach","Boro":"Queens","Manager":"Steve
 Waters","Event Date":"2019-11-19","Address":"7605 51st Street ","Zip":"11373","
Activity":"Word on the Street\\n","Grc":"42","ErrorMsg":"ADDRESS NUMBER OUT OF R
ANGE","Version":"18D","Suggested Corrected Address":"76-05 51st Ave, Elmhurst, N
Y 11373"},{"Unnamed: 0":"1","RecordID":"2","ID":"3","Site Served":"Cardinal Spel
lman High School","Program":"Outreach","Boro":"Brooklyn","Manager":"Lee Eastmond
","Event Date":"2019-11-04","Address":"1 Cardinal Spellman Place","Zip":"10466",
"Activity":"Alive at 25","Grc":"EE","ErrorMsg":"1 CARDINAL SPELLMAN PLACE NOT RE
COGNIZED. THERE ARE 009 SIMILAR NAMES.","Version":"18D","Suggested Corrected Add
ress":"1 Cardinal Spellman Pl, The Bronx, NY 10466"},{"Unnamed: 0":"2","RecordID
":"37","ID":"38","Site Served":"St. Marks Day  School","Program":"Outreach","Bor
o":"Brooklyn","Manager":"Steve Waters","Event Date":"2019-11-06","Address":"1346
 Presidnt Street","Zip":"11213","Activity":"My Safety Toolbox\\nSafety Smarts","
Grc":"11","ErrorMsg":"1346 PRESIDNT STREET NOT RECOGNIZED. THERE ARE NO SIMILAR
NAMES","Version":"18D","Suggested Corrected Address":"1346 President St, Brookly
n, NY 11213"}]']}>

然后我就跑

simplejson.dumps(variable_holding_query_dict)

出于某种原因,它将键小写

'{"tbl": "[{\\"unnamed:0\\":\\"0\\",\\"recordid\\":\\"0\\",\\"id\\":\\"1\\
",\\"siteserved\\":\\"51st Street Academy\\",\\"program\\":\\"Outreach\\",\\"bor
o\\":\\"Queens\\",\\"manager\\":\\"Steve Waters\\",\\"eventdate\\":\\"2019-11-19
\\",\\"address\\":\\"7605 51st Street \\",\\"zip\\":\\"11373\\",\\"activity\\":\
\"Word on the Street\\\\n\\",\\"grc\\":\\"42\\",\\"errormsg\\":\\"ADDRESS NUMBER
 OUT OF RANGE\\",\\"version\\":\\"18D\\",\\"suggestedcorrectedaddress\\":\\"76-0
5 51st Ave, Elmhurst, NY 11373\\"},{\\"unnamed:0\\":\\"1\\",\\"recordid\\":\\"2\
\",\\"id\\":\\"3\\",\\"siteserved\\":\\"Cardinal Spellman High School\\",\\"prog
ram\\":\\"Outreach\\",\\"boro\\":\\"Brooklyn\\",\\"manager\\":\\"Lee Eastmond\\"
,\\"eventdate\\":\\"2019-11-04\\",\\"address\\":\\"1 Cardinal Spellman Place\\",
\\"zip\\":\\"10466\\",\\"activity\\":\\"Alive at 25\\",\\"grc\\":\\"EE\\",\\"err
ormsg\\":\\"1 CARDINAL SPELLMAN PLACE NOT RECOGNIZED. THERE ARE 009 SIMILAR NAME
S.\\",\\"version\\":\\"18D\\",\\"suggestedcorrectedaddress\\":\\"1 Cardinal Spel
lman Pl, The Bronx, NY 10466\\"},{\\"unnamed:0\\":\\"2\\",\\"recordid\\":\\"37\\
",\\"id\\":\\"38\\",\\"siteserved\\":\\"St. Marks Day  School\\",\\"program\\":\
\"Outreach\\",\\"boro\\":\\"Brooklyn\\",\\"manager\\":\\"Steve Waters\\",\\"even
tdate\\":\\"2019-11-06\\",\\"address\\":\\"1346 Presidnt Street\\",\\"zip\\":\\"
11213\\",\\"activity\\":\\"My Safety Toolbox\\\\nSafety Smarts\\",\\"grc\\":\\"1
1\\",\\"errormsg\\":\\"1346 PRESIDNT STREET NOT RECOGNIZED. THERE ARE NO SIMILAR
 NAMES\\",\\"version\\":\\"18D\\",\\"suggestedcorrectedaddress\\":\\"1346 Presid
ent St, Brooklyn, NY 11213\\"}]"}'

如何不让它返回小写键

我需要POST请求返回的原始案例,因此我无法使用任何我想要的案例创建新的dict


Tags: streetaddressnotarestevetherestsimilar
1条回答
网友
1楼 · 发布于 2024-06-02 10:56:59

怎么样

import json

json.dumps(variable_holding_query_dict.dict())

例如:

from django.http import QueryDict
import json


qd = QueryDict('', mutable=True) # just a dummy QD example
qd.update({'example': 'UPPERCASE', 'example2': 'any value'})
json.dumps(qd.dict())

JSON转储结果:

'{"example": "UPPERCASE", "example2": "any value"}'

相关问题 更多 >