我对编程有点陌生,但是我发现python并没有达到我需要的速度,所以我改行了,我正在构建一个刮板,我需要将看起来像是ASCII格式的字符串转换为json,但是我找不到任何好的文档关于如何执行此操作。

我需要转换的字符串看起来像这样:debug%22%3Afalse%2C%22pageOpts%22%3A%7B%22noBidIfUnsold%22%3Atrue%2C%22keywords%22%3A%7B%22no-sno-finn-object_type% 22%3A%22private%22%2C%22no-sno-finn-car_make%22%3A%22796%22%2C%22aa-sch-publisher%22%3A%22finn%22%2C%22aa-sch-inventory_type% 22%3A%22classed%22%2C%22aa-sch-country_code%22%3A%22no%22%2C%22no-sno-finn-section%22%3A%22car%22%2C%22no-sno-finn- ad_owner%22%3A%22false%22%2C%22no-sno-publishergroup%22%3A%22schibsted%22%2C%22aa-sch-supply_type%22%3A%22web_desktop%22%2C%22no-sno-finn- subsection%22%3A%22car_used%22%2C%22aa-sch-page_type%22%3A%22object%22%7D

提前致谢!

最佳答案

如评论者所述,您的字符串经过URL编码,可以使用 url.QueryUnescape(...) 进行解码:

package main

import (
  "fmt"
  "net/url"
)

func main() {
  querystr := "debug%22%3Afalse%2C%22pageOpts%22%3A%7B%22noBidIfUnsold%22%3Atrue%2C%22keywords%22%3A%7B%22no-sno-finn-object_type%22%3A%22private%22%2C%22no-sno-finn-car_make%22%3A%22796%22%2C%22aa-sch-publisher%22%3A%22finn%22%2C%22aa-sch-inventory_type%22%3A%22classified%22%2C%22aa-sch-country_code%22%3A%22no%22%2C%22no-sno-finn-section%22%3A%22car%22%2C%22no-sno-finn-ad_owner%22%3A%22false%22%2C%22no-sno-publishergroup%22%3A%22schibsted%22%2C%22aa-sch-supply_type%22%3A%22web_desktop%22%2C%22no-sno-finn-subsection%22%3A%22car_used%22%2C%22aa-sch-page_type%22%3A%22object%22%7D"

  // Parse the URL encoded string.
  plainstr, err := url.QueryUnescape(querystr)
  if err != nil {
    panic(err)
  }
  fmt.Println(plainstr)
  // debug":false,"pageOpts":{"noBidIfUnsold":true,"keywords":{"no-sno-finn-object_type":"private","no-sno-finn-car_make":"796","aa-sch-publisher":"finn","aa-sch-inventory_type":"classified","aa-sch-country_code":"no","no-sno-finn-section":"car","no-sno-finn-ad_owner":"false","no-sno-publishergroup":"schibsted","aa-sch-supply_type":"web_desktop","no-sno-finn-subsection":"car_used","aa-sch-page_type":"object"}

}

您的示例字符串似乎不完整,但最终可以使用 json.Unmarshal(...) 解码为结构或映射。

关于json - 将ASCII转换为Json,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47398647/

10-14 12:28