加载json d时出现编码问题

2024-04-25 20:28:12 发布

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

如何使用json模块加载此数据?看来我需要再学习一些编码课程,讲解会很有帮助。你知道吗

_json = """{"sku":"02366  20","productRef":"02366  20@1401-B1","image":"http://media.wuerth.com/stmedia/shop/348px/1337528.jpg","shortInfo":"Stahl verzinkt<br>SHR-BLA-(A2K)-M6X20","pdfCatalogPage":["http://media.wuerth.com/stmedia/shop/masterpages0000/LANG_de/03721.pdf"],"catalogSheet":"http://eshop.wuerth.de/stmedia/Blaetterkatalog/Gesamtkatalog/index.php?mode=or&searchquery=03721&hook_url=http://eshop.wuerth.de/-/","documentInfoMap":{},"cadValue":null,"showCadValue":null,"msdsInformations":[],"technicalInformation":"<table class=\"tech_table\"><tbody><tr><td class=\"tech_col_left\"><p>Nenndurchmesser</p></td><td class=\"tech_col_left\"><p>6 mm</p></td></tr><tr><td class=\"tech_col_left\"><p>Werkstoff</p></td><td class=\"tech_col_left\"><p>Stahl</p></td></tr><tr><td class=\"tech_col_left\"><p>Oberfläche</p></td><td class=\"tech_col_left\"><p>Verzinkt</p></td></tr><tr><td class=\"tech_col_left\"><p>Lochdurchmesser</p></td><td class=\"tech_col_left\"><p>8 mm</p></td></tr><tr><td class=\"tech_col_left\"><p>Länge</p></td><td class=\"tech_col_left\"><p>20 mm</p></td></tr><tr><td class=\"tech_col_left\"><p>Blattdicke</p></td><td class=\"tech_col_left\"><p>3 mm</p></td></tr></tbody></table>"}"""

print json.loads(_json, encoding='utf-8')

SyntaxError: Non-ASCII character '\xc3' in file

Tags: comjsonhttptabledecolleftmedia
1条回答
网友
1楼 · 发布于 2024-04-25 20:28:12

需要在Python文件的顶部declare your encoding,并且需要使用raw字符串文字,因为\"转义符被Python解释为纯"字符:

# encoding: utf-8  
import json

_json = r"""
{"sku":"02366  20","productRef":"02366  20@1401-B1","image":"http://media.wuerth.com/stmedia/shop/348px/1337528.jpg","shortInfo":"Stahl verzinkt<br>SHR-BLA-(A2K)-M6X20","pdfCatalogPage":["http://media.wuerth.com/stmedia/shop/masterpages0000/LANG_de/03721.pdf"],"catalogSheet":"http://eshop.wuerth.de/stmedia/Blaetterkatalog/Gesamtkatalog/index.php?mode=or&searchquery=03721&hook_url=http://eshop.wuerth.de/-/","documentInfoMap":{},"cadValue":null,"showCadValue":null,"msdsInformations":[],"technicalInformation":"<table class=\"tech_table\"><tbody><tr><td class=\"tech_col_left\"><p>Nenndurchmesser</p></td><td class=\"tech_col_left\"><p>6 mm</p></td></tr><tr><td class=\"tech_col_left\"><p>Werkstoff</p></td><td class=\"tech_col_left\"><p>Stahl</p></td></tr><tr><td class=\"tech_col_left\"><p>Oberfläche</p></td><td class=\"tech_col_left\"><p>Verzinkt</p></td></tr><tr><td class=\"tech_col_left\"><p>Lochdurchmesser</p></td><td class=\"tech_col_left\"><p>8 mm</p></td></tr><tr><td class=\"tech_col_left\"><p>Länge</p></td><td class=\"tech_col_left\"><p>20 mm</p></td></tr><tr><td class=\"tech_col_left\"><p>Blattdicke</p></td><td class=\"tech_col_left\"><p>3 mm</p></td></tr></tbody></table>"}

"""

print json.loads(_json, encoding='utf-8')

上面假设您确实使用UTF-8作为源文件的编码;然后脚本生成:

$ bin/python test.py 
{u'sku': u'02366  20', u'documentInfoMap': {}, u'catalogSheet': u'http://eshop.wuerth.de/stmedia/Blaetterkatalog/Gesamtkatalog/index.php?mode=or&searchquery=03721&hook_url=http://eshop.wuerth.de/-/', u'cadValue': None, u'msdsInformations': [], u'showCadValue': None, u'shortInfo': u'Stahl verzinkt<br>SHR-BLA-(A2K)-M6X20', u'technicalInformation': u'<table class="tech_table"><tbody><tr><td class="tech_col_left"><p>Nenndurchmesser</p></td><td class="tech_col_left"><p>6 mm</p></td></tr><tr><td class="tech_col_left"><p>Werkstoff</p></td><td class="tech_col_left"><p>Stahl</p></td></tr><tr><td class="tech_col_left"><p>Oberfl\xe4che</p></td><td class="tech_col_left"><p>Verzinkt</p></td></tr><tr><td class="tech_col_left"><p>Lochdurchmesser</p></td><td class="tech_col_left"><p>8 mm</p></td></tr><tr><td class="tech_col_left"><p>L\xe4nge</p></td><td class="tech_col_left"><p>20 mm</p></td></tr><tr><td class="tech_col_left"><p>Blattdicke</p></td><td class="tech_col_left"><p>3 mm</p></td></tr></tbody></table>', u'productRef': u'02366  20@1401-B1', u'pdfCatalogPage': [u'http://media.wuerth.com/stmedia/shop/masterpages0000/LANG_de/03721.pdf'], u'image': u'http://media.wuerth.com/stmedia/shop/348px/1337528.jpg'}

相关问题 更多 >