为什么说JSON不适合做用户配置文件件

使用jquery获取用户输入的内容,匹配json中的内容,并将匹配到的json数据输出到页json文件中有张三,李四,王五的性别,身高等属性输入张三,点击查询,显示张三的属性输入李四,显示... 使用jquery获取用户输入的内容,匹配json中的内容,并将匹配到的json数据输出到页

json文件中有张三,李四,王五的性别,身高等属性

输入张三,点击查询,显示张三的属性


输入李四,显示李四的属性

希望能给个完整的demo,谢谢!

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

大神啊,非常感谢您百忙之中回答我的问题,但是这些人的属性都是放在单独一个文件里并且文件放在服务器上的,jquery读取用户输入的内容,然后去服务器上存放属性的文件里匹配,然后再用ajax写到页面上
 
  
 
大神啊,非常感谢您百忙之中回答我的问题,但是这些人的属性都是放在单独一个文件里并且文件放在服务器上的,jquery读取用户输入的内容,然后去服务器上存放属性的文件里匹配,然后再用ajax写到页面上

放到服务器上运行 否则ajax不执行

应用总是需要一定的配置的。根据应用环境不同,会需要不同的配置。比如开关调试 模式、设置密钥以及其他依赖于环境的东西。

Flask 的设计思路是在应用开始时载入配置。你可以在代码中直接硬编码写入配置,对于 许多小应用来说这不一定是一件坏事,但是还有更好的方法。

不管你使用何种方式载入配置,都可以使用 的 属性来操作配置的值。 Flask 本身就使用这个对象来保存 一些配置,扩展也可以使用这个对象保存配置。同时这也是你保存配置的地方。

config 实质上是一个字典的子类,可以像字典一样操作:

某些配置值还转移到了 Flask 对象中,可以直接通过 Flask 来操作:

以下配置变量由 Flask 内部使用:

显式开关异常的传播。当 TESTING 或 DEBUG 为真时,总是开启的。
缺省情况下,如果应用在调试模式下运行, 那么请求环境在发生异常时不会被弹出,以 方便调试器内省数据。可以通过这个配置来 禁止这样做。还可以使用这个配置强制不执行 调试,这样可能有助于调试生产应用(风险 大)。
常驻会话的存活期,其值是一个 datetime.timedelta 对象。 自 Flask 0.8 开始,其值可以是一个整数, 表示秒数。
服务器的名称和端口号,用于支持子域(如: 'myapp.dev:5000' )。注意设置为 “ localhost ”没有用,因为 localhost 不 支持子域。设置了 SERVER_NAME 后,在 缺省情况下会启用使用应用环境而不使用请求 环境的 URL 生成。
如果应用不占用整个域或子域,那么可以用 这个配置来设定应用的路径。这个配置还用作 会话 cookie 的路径。如果使用了整个域, 那么这个配置的值应当为 None 。
这个配置的值单位为字节,如果设置了,那么 Flask 会拒绝超过设定长度的请求,返回一个 413 状态码。
如果设置为 True ,那么 Flask 将不 执行 HTTP 异常的错误处理,而是把它像其它 异常同样对待并把它压入异常堆栈。当你在 必须查找出一个 HTTP 异常来自哪里的情况下 这个 配置比较有用。
Werkzeug 用于处理请求特殊数据的内部数据 结构会引发坏请求异常。同样,许多操作为了 一致性会使用一个坏请求隐藏操作失败。在 这种情况下,这个配置可以在调试时辨别到底 为什么会失败。如果这个配置设为 True ,那么就只能得到一个普通的反馈。
在没有可用的模式的情况下, URL 生成所 使用的 URL 模式。缺省值为 http 。
缺省情况下 Flask 会按键值排序 JSON 对象, 这是为了确保字典的哈希种子的唯一性,返回 值会保持一致,不会破坏外部 HTTP 缓存。 改变这个参数的值就可以重载缺省的行为, 重载后可能会提高缓存的性能,但是不推荐 这样做。

SERVER_NAME 配置用于支持子域。如果要使用子域,那么就需要这个配置。因为 Flask 在不知道真正服务器名称的情况下无法得知子域。这个配置也用于会话 cookie 。

请记住,不仅 Flask 是在使用子域时有这样的问题,你的浏览器同样如此。大多数 现代浏览器不会允许在没有点的服务器名称上设置跨子域 cookie 。因此,如果你的 服务器名称是 'localhost' ,那么你将不能为 'localhost' 和所有子域设置 cookie 。在这种情况下请选择一个其他服务器名称,如 'myapplication.local'

如果把配置放在一个单独的文件中会更有用。理想情况下配置文件应当放在应用包的 外面。这样可以在修改配置文件时不影响应用的打包与分发( 使用 Distribute 部署 )。

配置文件本身实质是 Python 文件。只有全部是大写字母的变量才会被配置对象所使用。 因此请确保使用大写字母。

请确保尽早载入配置,以便于扩展在启动时可以访问相关配置。除了从文件载入配置外, 配置对象还有其他方法可以载入配置,详见 Config 对象的文档。

前述的方法的缺点是测试有一点点麻烦。通常解决这个问题没有标准答案,但有些好的好的建议:

  1. 在一个函数中创建你的应用并注册“蓝图”。这样就可以使用不同配置创建多个实例,极大方便单元测试。你可以按需载入配置。

  2. 不要编写在导入时就访问配置的代码。如果你限制自己只能通过请求访问代码,那么 你可以以后按需配置对象。

大多数应用需要一个以上的配置。最起码需要一个配置用于生产服务器,另一个配置用于 开发。应对这种情况的最简单的方法总是载入一个缺省配置,并把这个缺省配置作为版本 控制的一部分。然后,把需要重载的配置,如前文所述,放在一个独立的文件中:

一个有趣的方案是使用类和类的继承来配置:

如果要使用这样的方案,那么必须使用 from_object():

配置的方法多种多样,由你定度。以下是一些建议:

  • 在版本控制中保存一个缺省配置。要么在应用中使用这些缺省配置,要么先导入缺省配置然后用你自己的配置文件来重载缺省配置。
  • 使用一个环境变量来切换不同的配置。这样就可以在 Python 解释器外进行切换,而 根本不用改动代码,使开发和部署更方便,更快捷。如果你经常在不同的项目间 切换,那么你甚至可以创建代码来激活 virtualenv 并导出开发配置。
  • 在生产应用中使用 fabric 之类的工具,向服务器分别传送代码和配置。更多细节参见使用 Fabric 部署方案。

Flask 0.8 引入了实例文件夹。 Flask 花了很长时间才能够直接使用应用文件夹的路径( 通过 Flask.root_path )。这也是许多开发者载入应用文件夹外的配置的方法。 不幸的是这种方法只能用于应用不是一个包的情况下,即根路径指向包的内容的情况。

Flask 0.8 引入了一个新的属性: Flask.instance_path 。它指向一个新名词: “实例文件夹”。实例文件夹应当处于版本控制中并进行特殊部署。这个文件夹特别适合存放需要在应用运行中改变的东西或者配置文件。

可以要么在创建 Flask 应用时显式地提供实例文件夹的路径,要么让 Flask 自动探测实例文件夹。显式定义使用 instance_path 参数:

请记住,这里提供的路径必须是绝对路径。

如果 instance_path 参数没有提供,那么会使用以下缺省位置:

既然可以通过使用配置对象来根据关联文件名从文件中载入配置,那么就可以通过改变与 实例路径相关联的文件名来按需要载入不同配置。在配置文件中的关联路径的行为可以在 “关联到应用的根路径”(缺省的)和 “关联到实例文件夹”之间变换,具体通过应用构建函数中的 instance_relative_config 来实现:

以下是一个完整的配置 Flask 的例子,从一个模块预先载入配置,然后从配置文件夹中的 一个配置文件(如果这个文件存在的话)载入要重载的配置:

目前本SDK的功能同REST API,需要联网调用http接口, 具体功能见, REST API 仅支持整段语音识别的模式,即需要上传完整语音文件进行识别,时长不超过60s,支持、自定义词库设置, 没有其他额外功能

将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列

原始 PCM 的录音参数必须符合 8k/16k 采样率、16bit 位深、单声道,支持的格式有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。

如果需要使用实时识别、长语音、唤醒词、语义解析等其它语音功能,请使用Android或者iOS SDK 或 Linux C++ SDK 等。

  1. 请严格按照文档里描述的参数进行开发,特别请关注原始录音参数以及语音压缩格式的建议,否则会影响识别率,进而影响到产品的用户体验。

  2. 目前系统支持的语音时长上限为60s,请不要超过这个长度,否则会返回错误。

  • 在百度云控制台内,咨询问题类型请选择人工智能服务

使用proxy问题修复
更新sdk打包方式:所有AI服务集成一个SDK

Java SDK代码现已公开,您可以查看代码、或者在License范围内修改和编译SDK以适配您的环境。

添加以下依赖即可。其中版本号可在查询

直接使用JAR包步骤如下

其中,version为版本号,添加完成后,用户就可以在工程中使用Speech Java SDK。

AipSpeech是语音识别的Java客户端,为使用语音识别的开发人员提供了一系列的交互方法。

用户可以参考如下代码新建一个AipSpeech,初始化完成后建议单例使用,避免重复获取access_token:

  1. // 可选:设置网络连接参数
  2. // 可选:设置代理服务器地址, http和socket二选一,或者均不设置
  3. // 可选:设置log4j日志输出格式,若不设置,则使用默认配置
  4. // 也可以直接通过jvm启动参数设置此环境变量
  1. # %c 所属类的全名(包括包名)
  2. # %l 发生的位置,在某个类的某行
  3. # %n 输出一个换行

在上面代码中,常量APP_ID在百度云控制台中创建,常量API_KEYSECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。

如果用户需要配置AipSpeech的一些细节参数,可以在构造AipSpeech之后调用接口设置参数,目前只支持以下参数:

建立连接的超时时间(单位:毫秒)
通过打开的连接传输数据的超时时间(单位:毫秒)
设置http代理服务器
设置socket代理服务器 (http和socket类型代理服务器只能二选一)

向远程服务上传整段语音进行识别

  1. // 对本地语音文件进行识别
  2. // 对语音二进制数据进行识别
语音文件所在路径或二进制数据, 语音文件的格式,pcm 或者 wav 或者 amr。不区分大小写
采样率,16000,固定值
用户唯一标识,用来区分用户,填写机器 MAC 地址或 IMEI 码,长度为60以内
不填写lan参数生效,都不填写,默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格
历史兼容参数,请使用dev_pid。如果dev_pid填写,该参数会被覆盖。语种选择,输入法模型,默认中文(zh)。 中文=zh、粤语=ct、英文=en,不区分大小写。
普通话(支持简单的英文识别)

语音识别 返回数据参数详情

语音数据唯一标识,系统内部产生,用于 debug
识别结果数组,提供1-5 个候选结果,string 类型为识别的字符串, utf-8 编码

若请求错误,服务器将返回的JSON文本包含以下参数:

  • error_msg:错误描述信息,帮助理解和解决发生的错误。

SDK本地检测参数返回的错误码

连接超时或读取数据超时
请仔细核对文档及参照demo,核对输入参数
请将api返回结果反馈至论坛或者QQ群
请降低识别api请求频率 (qps以appId计算,移动端如果共用则累计)
用户的日pv(日请求量)超限 请“申请提高配额”,如果暂未通过,请降低日请求量
语音服务器后端识别出错问题 目前请确保16000的采样率音频时长低于30s,8000的采样率音频时长低于60s。如果仍有问题,请将api返回结果反馈至论坛或者QQ群
音频时长不超过60s,请将音频时长截取为60s以下
服务端无法将音频转为pcm格式,可能是长度问题,音频格式问题等。 请将输入的音频时长截取为60s以下,并核对下音频的编码,是否是8K或者16K, 16bits,单声道。
采样率rate参数不在选项里 目前rate参数仅提供两种,填写4000即会有此错误
音频格式format参数不在选项里 目前格式仅仅支持pcm,wav或amr,如填写mp3即会有此错误

错误码常见问题及具体分析

这两组参数必须二选一,如果都填,默认处理第一种。 channel cuid token,请勿漏填。此外 (speech, len) 及 (url, callback) 这两组参数必须二选一,如果都填,默认处理第一种。

wav和amr的音频,服务端会自动转为pcm,这个过程中导致转码出错。请确认下format及rate参数与音频一致,并确认音频时长截取为60s以下。

识别结果实际为空。可能是音频质量过差,不清晰,或者是空白音频。
有时也可能是pcm填错采样率。如16K采样率的pcm文件,填写的rate参数为8000。

我要回帖

更多关于 配置文件 的文章

 

随机推荐