Python读取JSON出现b'和\n'问题

使用Python自带的IDLE,发现读取JSON时会增加一些字符串。代码如下:

 # -*- coding: utf-8 -*- 
import json
from urllib.request import urlopen

def getCountry(ipAddress):
    response=urlopen('http://freegeoip.net/json/'+ipAddress).read()
    print(response)
    responseJSON=json.loads(response)
    return responseJSON.get('country_code')
print(getCountry('50.78.253.58'))

运行环境如下:
Python版本:python 3.5-64位
Windows系统:win10 64位(中文)
默认浏览器:Google chrome 46.0.2490.86
系统默认语言:中文

如图所示:
图片说明
而翻看源码,似乎也没找到这几个字符串的东西:
图片说明
麻烦大家帮忙看看有没有解决办法。系统是不太可能装英文版的了。第一次学习python,就遇到这种问题。

2个回答

先看看网页返回的内容是什么编码,然后response需要decode解码一下再用json处理

whomi13
whomi13 谢谢你的提示。将原先的response改为response.decode('gb2312')后解决了。
接近 3 年之前 回复

出现在前后,可以用strip()方法删掉。或者用正则匹配就好了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python如何批量的读取json格式的数据
我现在需要处理一批不断传入的json格式的数据,格式是这样的: > comsou 0 {"id":"F45EAB09792C","v":"0.10","mid":5221,"raw_beacons_data":"123B6A1ABAD1B5;123B6A1ABAC1B5;"} comsou 0 {"id":"F45EAB09792C","v":"0.10","mid":5222,"raw_beacons_data":"123B6A1ABAD1B5;"} comsou 0 {"id":"F45EAB09792C","v":"0.10","mid":5223,"raw_beacons_data":"123B6A1ABAC1B5;123B6A1ABAD1B5;"} comsou 0 {"id":"F45EAB09792C","v":"0.10","mid":5224,"raw_beacons_data":"123B6A1ABAD1B5;"} comsou 0 {"id":"F45EAB09792C","v":"0.10","mid":5225,"raw_beacons_data":"123B6A1ABAC1B5;123B6A1ABAD1B5;"} comsou 0 {"id":"F45EAB09792C","v":"0.10","mid":5226,"raw_beacons_data":"123B6A1ABAD1B5;"} 我现在想做的是不间断的读取这些传来的信息并提取出里面的‘id’和'raw_beacons_data'的值出来,想问一下各位大神该如何做呢? 另外就是我需要将'raw_beacons_data'里的两组数据(以;隔开的)分别拿出来,又该如何做呢?
如何用Python写键值对数目不定的Json文件?
### 操作步骤 1.用Python从文件中读取数据 2.分析原始数据,得到用于生成Json文件的数据 3.写入Json文件 ### 我的疑难点 从文件中读取数据并经过处理后应得到的Json数据的键值对数目是不确定的。 { "0":"information", "1":{}, "2":{}, ...... "n":{} } 就像上面这样的结构,n是不确定的,该如何把要写入文件的Json确定下来呢?
用Python读取Google Sheets中数据,请求访问失败的原因?
用Python尝试读取Google Sheets中的数据,总是报错如下 ``` import gspread from oauth2client.service_account import ServiceAccountCredentials # The ID and range of a sample spreadsheet. #SAMPLE_SPREADSHEET_ID = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms' #SAMPLE_RANGE_NAME = 'Class Data!A2:E' scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"] creds = ServiceAccountCredentials.from_json_keyfile_name("./creds.json", scope) client = gspread.authorize(creds) sheet = client.open("tutorial").sheet1 # Open the spreadhseet data = sheet.get_all_records() # Get a list of all records row = sheet.row_values(3) # Get a specific row col = sheet.col_values(3) # Get a specific column cell = sheet.cell(1,2).value # Get the value of a specific cell insertRow = ["happy", 5, "red", "blue"] #sheet.add_rows(insertRow, 4) # Insert the list as a row at index 4 sheet.insert_row(insertRow, 4) # Insert the list as a row at index 4 sheet.update_cell(2,2, "CHANGED") # Update one cell numRows = sheet.row_count # Get the number of rows in the sheet ``` 已经确保Python文件和json文件在同一个目录下,还是报错如下
python怎么读取大概1400MB的大json文件
import codecs content='' with codecs.open('./xxx.json', 'r') as content_file: for line in content_file.readlines(): content=content+line records = json.loads(json.dumps(content)) jupyter 提示The kernel appears to have died. It will restart automatically.
python读取文件,生成指定格式的json对象
比如文件内容是张三 23 男 李四 24 男 王五 26 女 每三行生成一个json对象
求助一个Python 循环读取文件,并对读到的字符串进行赋值,然后进一步生成json file 的方法。
求助一个Python 循环读取文件,并对读到的字符串进行赋值,然后进一步生成json file 的方法。 本来想用shell写,利用while read line do ......done <table.list这样的。 但是这样json file 不知道怎么写了,所以只能试着用Python写个循环。 目前的问题是TABLE.csv文件中TABLE是个变量,是从table.list里面取到的表名,不知道Python 里面变量怎么用。求助大神!! import base64 import os with open('table.list','r') as f4: for line in f4: TABLE = line f = open('TABLE.csv', 'r') content = f.read() content1 = content.encode(encoding='utf-8') content2 = base64.b64encode(content1) f.close() if os.path.getsize('TABLE.step1'): print('file exists and not empty') f1= open('TABLE.step2','r') V_Sha=f1.read() f1.close() with open('TABLE.csv.json', 'w') as j1: j1.write('{ "message": "[ci skip][Auto Commit]data into file", "content": "' + content2 + '", "sha": "' + V_Sha + '", "branch": "xxx" }') else: with open('TABLE.csv.json', 'w') as j1: j1.write('{ "message": "[ci skip][Auto Commit]data into file", "content": "' + content2 + '", "branch": "xxx" }') f4.close()
python如何读取bz2压缩包文件
目前代码: ``` from bz2 import BZ2File as b2f import tarfile fp = b2f("G:/30.json.bz2") line = fp.readline() print(line) ``` 报如下错误: ``` Traceback (most recent call last): File "C:/Users/Andy/PycharmProjects/Data cleaning/bz2.py", line 2, in <module> from bz2 import BZ2File as b2f File "C:\Users\Andy\PycharmProjects\Data cleaning\bz2.py", line 2, in <module> from bz2 import BZ2File as b2f ImportError: cannot import name BZ2File Process finished with exit code 1 ```
datax 从hive导出数据到mysql时 字段分隔符的配置
hive中建表时指定字段分割符为 \t,配置导出的json时,配置字段分隔符为 \t,导出失败,原因是从hive读取数据时只能识别一个字段,显然字段分割没有成功。。网上百度说字段分隔符默认应设置为 \u0001,但这是在hive上建表时没有指定字段分割符时。。想搞明白这是什么原因,比如我的 \t 在导出时为什么不能使用呢,是hive无法识别吗?我建表的时候就是 \t 啊,是需要转成什么字符集吗。。在字符集这块比较晕,请大神指点指点[face]qq:83.gif[/face]
Python:如何读取CSV里1000个网页,然后按序存1000个网页HAR data,自动化
程序跑一次,可以去指定网页,转存一个har data文件。(这是没问题的) 但是,现在要跑1000个网页,读CSV里面的urls,但是始终无法自动命名存储下来的文档。 例如: CSV: 1. google.com ----> 存:a1.har 2. qq.com ----->存:a2.har 3. 163.com ------> 存:a3.har..(文件名要自动生成后缀,不要覆盖了) ...如此类推 --------> 存:a1000.har 网络上,国内外的网站都找了,确实比较少关于HAR data 的存储。 个人觉得是查了一个循环的语句,让Python直到浏览器,第一个网站进去了,存好了,再去第二个网站,存好了。这样逻辑, 可是能力不够,麻烦大神帮帮忙。 ``` import csv from browsermobproxy import Server from selenium import webdriver import json server = Server("D:\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy.bat") server.start() proxy = server.create_proxy() profile = webdriver.FirefoxProfile() profile.set_proxy(proxy.selenium_proxy()) driver = webdriver.Firefox(firefox_profile=profile) extension_dir = "C:\\Program Files (x86)\\Mozilla Firefox\\browser\\features\\" # remember to include .xpi at the end of your file names extensions = [ 'adblock_plus-3.5-an+fx.xpi' ] for extension in extensions: driver.install_addon(extension_dir + extension, temporary=True) proxy.new_har("qq") path = "D:\websites.csv" csvfile = open(path,'r') reader = csv.reader(csvfile) result = {} for item in reader: if reader.line_num ==1: continue result[item[0]] = item[1] csvfile.close() print(result) for id, web in result.items(): website = web driver.get(website) server.stop() driver.quit() f = os.fdopen(fi, "w") ```
python3 用pdfminer3k爬取PDF文件不完整,请问有什么解决方法吗?
最近在用Python爬交易所公告的PDF文件,参考了论坛上各位大神的介绍,安装了pdfminer3k,并成功解析了PDF文件。不过我发现有些PDF文件解析的时候只能解析一部分内容出来,大段的文字没有解析出来,请问是什么问题,有什么解决方案吗?查了好久没找到类似的问题,感谢大家! 下面是我的代码: # -*- coding: utf-8 -*- from urllib.request import Request from urllib.request import quote from urllib.request import urlopen import pandas as pd from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LTTextBoxHorizontal, LAParams from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfinterp import PDFTextExtractionNotAllowed from pdfminer.pdfparser import PDFParser, PDFDocument headers = {'content-type': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0'} baseurl = "http://" def parse(docucode, txtcode): try: # 打开在线PDF文档 #_path = baseurl + quote(docucode) + "?random=0.3006649122149502" _path = baseurl + quote(docucode) request = Request(url=_path, headers=headers) # 随机从user_agent列表中抽取一个元素 fp = urlopen(request,timeout=500) #timeout设置超时的时间,防止出现访问超时问题 # 读取本地文件 # path = './2015.pdf' # fp = open(path, 'rb') # 用文件对象来创建一个pdf文档分析器 praser_pdf = PDFParser(fp) # 创建一个PDF文档 doc = PDFDocument() # 连接分析器 与文档对象 praser_pdf.set_document(doc) doc.set_parser(praser_pdf) # 提供初始化密码doc.initialize("123456") # 如果没有密码 就创建一个空的字符串 doc.initialize() # 检测文档是否提供txt转换,不提供就忽略 if not doc.is_extractable: raise PDFTextExtractionNotAllowed else: # 创建PDf资源管理器 来管理共享资源 rsrcmgr = PDFResourceManager() # 创建一个PDF参数分析器 laparams = LAParams() # 创建聚合器 device = PDFPageAggregator(rsrcmgr, laparams=laparams) # 创建一个PDF页面解释器对象 interpreter = PDFPageInterpreter(rsrcmgr, device) # 循环遍历列表,每次处理一页的内容 # doc.get_pages() 获取page列表 for page in doc.get_pages(): # 使用页面解释器来读取 interpreter.process_page(page) # 使用聚合器获取内容 layout = device.get_result() # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 一般包括LTTextBox, # LTFigure, LTImage, LTTextBoxHorizontal 等等 想要获取文本就获得对象的text属性, for out in layout: # 判断是否含有get_text()方法,图片之类的就没有 # if ``hasattr(out,"get_text"): docname = str(txtcode).split('.')[0]+'.txt' with open(docname, 'a') as f: if isinstance(out, LTTextBoxHorizontal): results = out.get_text() #print(results) f.write(results) except Exception as e: #抛出超时异常 print("a", str(e)) pdfurl = 'www.sse.com.cn/disclosure/credibility/supervision/inquiries/opinion/c/8135857143683813.pdf' txtname = 'ceshi' parse(pdfurl, txtname)
python3爬取豆瓣读书的API报错400,bad request
使用如下python代码读取配置文件中的linkLists(https://api.douban.com/v2/book/1006639),每次爬取到100条左右时就报错bad request 请教各位大神有木有遇到过这种情况,该怎么解决 import json import pymysql import random import time import urllib from urllib import request import doubans.config.linkconfig conn = pymysql.connect( user="root",password="root",database="python",charset='utf8') cur = conn.cursor() def getDetail(url): req = urllib.request.Request(url) req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36') try : res = urllib.request.urlopen(req) jsondata = res.read().decode("UTF-8") res.close() result = json.loads(jsondata) except urllib.error.URLError as e : print(e.reason) if ('title' in result.keys()): title = result["title"] else: title = "" if ('isbn13' in result.keys() and 'ibsn13' != ""): isbn = result["isbn13"] else: isbn = result["isbn10"] l = [] l.append([title,isbn]) sql = "INSERT INTO allbooks values(%s,%s)" cur.executemany(sql, l) conn.commit() for i in range(0,len(doubans.config.linkconfig.linkLists)): print(doubans.config.linkconfig.linkLists[i]) getDetail(doubans.config.linkconfig.linkLists[i]) time.sleep(int(format(random.randint(0, 9)))) 报错信息如下 Traceback (most recent call last): File "F:/Python/doubans/getDetail.py", line 143, in <module> getDetail(doubans.config.linkconfig.linkLists[i]) File "F:/Python/doubans/getDetail.py", line 27, in getDetail if ('title' in result.keys()): UnboundLocalError: local variable 'result' referenced before assignment Bad Request
急求:Json无法从dic-list-dic结构的字典中提取出数据
# 问题描述及期望结果 读取data[](http://py4e-data.dr-chuck.net/comments_213628.json "") 将里面count的数字都抓出来,并加和。 data={ "note":"This file contains the actual data for your assignment", "comments":[ { "name":"Lilygrace", "count":99 }, { "name":"Fraser", "count":1 } ] } # 思考过程及代码 用json把数字抓出来 import urllib.request, urllib.parse, urllib.error import ssl import json ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE url= input('Enter: ') uh = urllib.request.urlopen(url, context=ctx) data = uh.read() info = json.loads(data) x3 = [] for item in info: x1 = item['count'] x3.append(int(x1)) print(x3) print(sum(x3)) # 执行情况 报错 x1 = item['count'] TypeError: string indices must be integers
最近突发奇想用java去请求python写的接口结果出问题了
python代码如下: ``` import tornado from wtforms_tornado import Form import sys class hello(tornado.web.RequestHandler): def get(self): self.render("hello.html") class ajaxtest(tornado.web.RequestHandler): def set_default_headers(self): print("setting headers!!!") self.set_header("Access-Control-Allow-Origin", "*") self.set_header("Access-Control-Allow-Headers", "x-requested-with") self.set_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') def get(self): data="你好我是刘德华" #data.encode("utf-8") print("get") self.write(data) def post(self): import json res=dict( hel="你好我是刘德华", d="ee" ) json = json.dumps(res) print("post") self.write(json) ``` python的代码应该是没有问题的 问题应该出在java上因为用直接用jQuery ajax请求是完全没有问题的 java代码如下: ``` package xiaoxiaomo; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; public class test { /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public test() { // TODO Auto-generated constructor stub } public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } public static String getEncoding(String str) { String encode = "GB2312"; try { if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GB2312 String s = encode; return s; //是的话,返回“GB2312“,以下代码同理 } } catch (Exception exception) { } encode = "ISO-8859-1"; try { if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是ISO-8859-1 String s1 = encode; return s1; } } catch (Exception exception1) { } encode = "UTF-8"; try { if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是UTF-8 String s2 = encode; return s2; } } catch (Exception exception2) { } encode = "GBK"; try { if (str.equals(new String(str.getBytes(encode), encode))) { //判断是不是GBK String s3 = encode; return s3; } } catch (Exception exception3) { } return ""; } public static void main(String[] args) throws UnsupportedEncodingException { //发送 GET 请求 String s=test.sendGet("http://127.0.0.1:9999/ajax", "key=123&v=456"); // String str=new String(s.getBytes(),"utf-8"); String type=getEncoding(s); System.out.println("字符串的编码是:"+type); System.out.println(s); //发送 POST 请求 // String sr=test.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456"); // System.out.println(sr); } } ``` 执行效果如下中文乱码: ![图片说明](https://img-ask.csdn.net/upload/201805/16/1526480833_741806.png) 然后我转了字符串编码为utf-8执行结果如下最后一个字显示问号 ![图片说明](https://img-ask.csdn.net/upload/201805/16/1526480961_68315.png) 后面没有办法,我在python就把字符串转为utf-8 ![图片说明](https://img-ask.csdn.net/upload/201805/16/1526481027_280369.png) 结果执行以后编码是utf-8没错 但是还是乱码 这是咋回事啊 ![图片说明](https://img-ask.csdn.net/upload/201805/16/1526481133_525792.png)
django怎样在两个VIEWS之间传递数据
``` from django.shortcuts import render from django.views.generic.base import View from datetime import datetime from django.http import HttpResponse from .models import Cschat from tools.cschat_aliyun import AliyunCschat from django.views.decorators.csrf import csrf_exempt import json,time class CschatView(View): def get(self,request): return render(request,'cschat.html') def post(self,request): content = request.POST.get("content","") result = AliyunCschat(content).hash_result() time.sleep(2) with open('aliyun.json','rb') as f: d = json.loads(f.read()) return render(request,'cschat_result.html',{ "contents":d }) class AliyunCallbackView(View): @csrf_exempt def post(self,request): postbody = request.body with open('aliyun.json','wb') as f: f.write(postbody) return HttpResponse(str(postbody)) def get(self,request): return render(request,'aliyun_callback.html',{ "text":"没有结果" }) ``` 应用场景:给阿里云的接口发送POST请求后 阿里云不会直接返回数据 而是把数据返回到另外一个接口(class AliyunCallbackView(View)这个对应的url),我需要在给阿里云发送POST请求后从另一个接口读取阿里云返回的POST数据。 代码中 ``` result = AliyunCschat(content).hash_result() ``` 这一行执行是给阿里云的接口发送POST请求 我现在的写法很有问题,因为没有好的解决办法。 我的做法是把AliyunCallbackView接收到的阿里云POST返回的数据写到aliyun.json这个文件里面,然后等待2秒钟后读取aliyun.json里面的内容,再把结果返回给前端。这样写的问题很多,如果AliyunCallbackView在一秒内接收到多个返回数据,那后面的执行内容就全变了。可以把阿里云POST返回的数据写入数据库,然后使用时间戳查询数据库返回对应的值。这种办法虽然可行但是感觉太麻烦了,请问有什么更好的解决办法?
python爬取动态网址时如何获取发送的参数
有个网址是动态的,我需要爬取的数据存储在json数据格式中, 这个用json模块读取没毛病, 但是存在这么一个问题,就是向这个数据url提交访问请求时, 有加密的参数,比如queryID,serverIP,status这三个参数,删去这几个参数去访问是被对方服务器禁止的, 而且通过正常浏览器访问的话,这个页面会在一分钟左右失效不可访问 去找cookies,没在cookies中找到与这三个参数有关联,我没法构造出这个数据页面的url 想问问各位大牛,向某个网站请求的时候,这些动态的参数一般会存储在哪里?怎么获取这种动态添加的参数? 感激不尽! ![图片说明](https://img-ask.csdn.net/upload/201704/06/1491487040_282833.png) ![图片说明](https://img-ask.csdn.net/upload/201704/06/1491487055_236999.png)
翻译脚本无法生效,求Python前辈指点迷津。
该脚本的作用是把英文文档变成中英文混合模式,以便翻译使用。但运行结果却没有一句能翻译成功,全都是KeyError,最后就是UnicodeEncodeError。 ``` # -*- coding: utf-8 -*- # Python版本:3.6,搜狗翻译API,ID和Key均可用。 # 该脚本作用:把从FF下载的文本文档按句回车,再把上面句的机翻结果自动插入下面。 """ 例: 处理前:A Word of Caution (1).txt You are Twilight, and today in a difficult situation. Applejack has adopted some creature from the Everfree forest. And while it seems harmless enough to AJ and everyone else, even the Princess, you're not so sure. Never before has anybody seen anything like him. 处理后:out_A Word of Caution (1).txt You are Twilight, and today in a difficult situation. >>你是暮光之城,今天处境艰难。 Applejack has adopted some creature from the Everfree forest. >>Applejack采用了Everfree森林中的一些生物。 And while it seems harmless enough to AJ and everyone else, even the Princess, you're not so sure. >>尽管对于AJ和其他所有人,甚至是公主来说,它似乎都是无害的,但你并不那么确定。 Never before has anybody seen anything like him. >>从来没有人见过像他这样的人。 """ import requests import hashlib import os import time class Transformerxx(object): def __init__(self): self.top_dir = os.path.dirname(os.path.abspath('Runner v0.01.py')) self.workingDir = self.top_dir + '\\FirstText\\' # 待翻译文件存放目录 self.outputDir = self.top_dir + '\\TransedText\\' # 翻译中文件存放目录 self.znputDir = self.top_dir + '\\ZhcnText\\' # 处理完文件存放目录 self.input_dirs = os.listdir(self.workingDir) # 待翻译文件名列表 self.output_dirs = os.listdir(self.outputDir) # 翻译后文件名列表 self.znput_dirs = os.listdir(self.znputDir) # 处理完文件名列表 def TextPreTreatment(self): # 本函数的用处是预处理,把待处理的文本文件按照 '. '来分段。以便逐行读取并翻译 ''' 思路修正 在预处理之中,应该可以直接调用翻译函数/方法, 从文本中读取的每一行都要进行翻译处理, 再以“>>机翻文本\n”的方式加到当前行后面。 最终输出结果 ''' # print(self.input_dirs) # 中间结果检查 # print('*') # 中间结果检查 # print(self.output_dirs) # 中间结果检查 for name in self.input_dirs: print('源文件:' + name) outname = 'out_' + name print('输出文件' + outname) x = open(self.workingDir + name,'r',encoding="utf-8") # 打开文件 y = open(self.outputDir + outname,'w',encoding="utf-8") # 写入文件 for line in x: y.write(line.replace('. ','. \n')) # 逐行修改替换 x.close() # 文件关闭 y.close() # 文件关闭 def OutputText(self): for name in self.output_dirs: x = open(self.outputDir + name,'r',encoding="utf-8") # 打开文件 y = open(self.znputDir + name,'w',encoding="utf-8") # 写入文件 for line in x: print('当前翻译行:'+ line) try: englishtochinese = Transformerxx().Transformer(line) # 本程序疑问处 except KeyError: print('不能翻译,出现了KeyError.') y.write(line.replace(('. \n'), ('. \n' + '>>' + '\n'))) # 逐行修改替换 else: print('译文:'+ englishtochinese) print('译文类型:' + type(englishtochinese)) y.write(line.replace(('. \n'), ('. \n' + '>>' + englishtochinese + '\n'))) # 逐行修改替换 time.sleep(3) # 每次发送翻译请求的间隔 x.close() # 文件关闭 y.close() # 文件关闭 def Transformer(self,txt): # 把文本形参翻译成中文返回 url = "http://fanyi.sogou.com:80/reventondc/api/sogouTranslate" # 搜狗翻译API pid = "5c918dbfec1a7b9a12d46e339e942970" # 申请的用户ID=5c918dbfec1a7b9a12d46e339e942970 salt = "1508404016012" # 随机数 Skey = "d13aecefc064c6fd9addffa08565366a" # 申请的用户Key =d13aecefc064c6fd9addffa08565366a m = hashlib.md5() # MD5 加密 m.update((pid+str(txt)+salt+Skey).encode("utf8")) sign = m.hexdigest() # 签名md5(pid+q+salt+用户密钥),其中pid、q、salt、用户密钥参数去除了首尾空格 payload = "from=en&to=zh-CHS&pid=" + pid + "&q=" + str(txt) + "&sign=" + sign + "&salt=" + salt headers = { 'content-type': "application/x-www-form-urlencoded", 'accept': "application/json" } response = requests.request("POST", url, data=payload, headers=headers) result = response.text # print(result) return (eval(result)['translation']) Tran = Transformerxx() # 实例化 # Tran.TextPreTreatment() # 预处理 Tran.OutputText() # 输出成品 # print(Tran.Transformer('Many of the ponies')) # 测试翻译方法用 # print(Tran.Transformer('Many of the ponies wore smiles as they walked about their day.')) # 测试翻译方法用 ``` > UnicodeEncodeError: 'latin-1' codec can't encode character '\u2019' in position 156: Body ('’') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.
Python,类中字典变量的疑问
各位python大神,我刚开始看python,遇到一个问题,有点疑惑,请高手给解下惑 我在一个类中定义了一个字符串变量和一个字典变量 我实例化几个实例,分别对字符串变量和字典变量进行赋值,然后存储到一个链表中,最后打印发现字典变量总是会被最后一次赋值覆盖掉。 字典变量在类中就相当于static了吗? SysConfig 数据库中的信息读取后,保存到这个SysConfig中 ``` # coding=utf-8 import json class SysConfig(object): syscfg = { "id":0, "name":"", "switcherid":0, "centreconsoleid":0, "port":"", "teacher":"", "teacher_panorama":"", "student":"", "student_panorama":"", "blackboard":"", "course":"" } test="test"; def __init__(self): pass; def getSysCfg(self): return self.syscfg; def setSyscfg(self, cfg): for key in cfg: self.syscfg[key] = cfg[key]; self.test = str(cfg); ``` 数据库操作类: ``` import pymysql import sys import sysCfg class GSDBHelper(object): dbConfig = { 'host':'127.0.0.1', 'port':3306, 'user':'root', 'password':'root', 'db':'db_test', 'charset':'utf8mb4', 'cursorclass':pymysql.cursors.DictCursor } dbsysList = []; def __init__(self): pass; def setConfig(self, host, port, user, password, db): self.dbConfig["host"] = host; self.dbConfig["port"] = port; self.dbConfig["user"] = user; self.dbConfig["password"] = password; self.dbConfig["db"] = db; # print("db config...", self.dbConfig); def getSysConfig(self): try: self.dbsysList.clear(); conn = pymysql.connect(**self.dbConfig); cur = conn.cursor(); cur.execute("select * from dbt_sys"); rows = cur.fetchall(); for row in rows: dbsys = sysCfg.SysConfig(); dbsys.setSyscfg(row); self.dbsysList.append(dbsys); for sysItem in self.dbsysList: print(sysItem, " syscfg... ", sysItem.getSysCfg()); print(sysItem, " test 字符串 ", sysItem.test); except: info = sys.exc_info(); print(info[0], ":", info[1]); finally: if "conn" in locals().keys(): conn.close(); ``` 执行: ``` import dbhelper if __name__ == '__main__': db = dbhelper.GSDBHelper(); db.setConfig("127.0.0.1", 3306, "root", "ab123@", "db_gsaid"); db.getSysConfig(); ``` 运行结果: ``` <sysCfg.SysConfig object at 0x0293A2D0> syscfg... {'id': 2, 'name': None, 'switcherid': 1, 'port': '{"sprite":99991, "cameractrl1":2001, "cameractrl2":2002, "cameractrl3":2003, "cameractrl4":2004}', 'centreconsoleid': None, 'teacher': None, 'teacher_panorama': None, 'student': None, 'student_panorama': None, 'blackboard': None, 'course': None, 'info': None} <sysCfg.SysConfig object at 0x0293A2D0> test 字符串 {'id': 1, 'name': '', 'switcherid': 1, 'centreconsoleid': 1, 'port': '{"sprite":9999, "cameractrl1":2001, "cameractrl2":20021, "cameractrl3":2003, "cameractrl4":2004}', 'teacher': '{"time":{"min":2000, "max":600000}, "lostormax_cutto":"student_panorama", "effect1":{"id":16, "pect":100}, "effect2":{"id":16, "pect":0}}', 'teacher_panorama': '{"time":{"min":2000, "max":100000}, "effect1":{"id":16, "pect":100}, "effect2":{"id":16, "pect":0} }', 'student': '{"time":{"min":2000, "max":100000} , "effect1":{"id":16, "pect":100}, "effect2":{"id":16, "pect":0}}', 'student_panorama': '{"time":{"min":2000, "max":100000} , "effect1":{"id":16, "pect":100}, "effect2":{"id":16, "pect":0}}', 'blackboard': '{"time":{"min":2000, "max":100000}, "effect1":{"id":16, "pect":100}, "effect2":{"id":16, "pect":0} }', 'course': '{"time":{"min":2000, "max":100000} , "effect1":{"id":16, "pect":100}, "effect2":{"id":16, "pect":0}}', 'info': None} <sysCfg.SysConfig object at 0x0293A2F0> syscfg... {'id': 2, 'name': None, 'switcherid': 1, 'port': '{"sprite":99991, "cameractrl1":2001, "cameractrl2":2002, "cameractrl3":2003, "cameractrl4":2004}', 'centreconsoleid': None, 'teacher': None, 'teacher_panorama': None, 'student': None, 'student_panorama': None, 'blackboard': None, 'course': None, 'info': None} <sysCfg.SysConfig object at 0x0293A2F0> test 字符串 {'id': 2, 'name': None, 'switcherid': 1, 'centreconsoleid': None, 'port': '{"sprite":99991, "cameractrl1":2001, "cameractrl2":2002, "cameractrl3":2003, "cameractrl4":2004}', 'teacher': None, 'teacher_panorama': None, 'student': None, 'student_panorama': None, 'blackboard': None, 'course': None, 'info': None} ```
利用ajax动态的提取mysql中的数据,并且在前端页面中展示出来
代码如下: 前端html: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <!--<script type="text/javascript" src="jquery.js"></script>--> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <body> <div id="main" style="width: 600px;height:400px;"></div> </body> </html> <script> var app = { xvalue: [], yvalue: [], z:[], }; // 发送ajax请求,从后台获取json数据 $(document).ready(function () { getData(); console.log(app.value1); console.log(app.timepoint) console.log(app.predictvalue1) }); function getData() { $.ajax({ url: '/test', data: {}, type: 'POST', async: false, dataType: 'json', success: function (data) { app.value1 = data.value1; app.predictvalue1=data.predictvalue1; value1 = app.value1; predictvalue1=app.predictvalue1; function trueData(i) { now = new Date(+now + oneDay); value = value1[i]; return { name: now.toString(), value: [ [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'), Math.round(value) ] } } function predictData(i) { now1 = new Date(+now1 + oneDay); predictvalue = predictvalue1[i]; return { name: now1.toString(), value: [ [now1.getFullYear(), now1.getMonth() + 1, now1.getDate()].join('/'), Math.round(predictvalue) ] } } var data = []; var predictdata=[]; var now = +new Date(1997, 9, 3); var now1 = +new Date(1997, 9, 4); var oneDay = 24 * 3600 * 1000; for (var i = 0; i < value1.length; i++) { data.push(trueData(i)); } for (var i = 0; i < predictvalue1.length; i++) { predictdata.push(predictData(i)); } // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); option = { title: { text: '动态数据 + 时间坐标轴' }, tooltip: { trigger: 'axis', formatter: function (params) { params = params[0]; var date = new Date(params.name); return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear() + ' : ' + params.value[1]; }, axisPointer: { animation: false } }, xAxis: { type: 'time', splitLine: { show: false } }, yAxis: { type: 'value', boundaryGap: [0, '100%'], splitLine: { show: false } }, series: [{ name: '真实数据', type: 'line', showSymbol: false, hoverAnimation: false, data: [], markLine: { itemStyle: { normal: { borderWidth: 1, lineStyle: { type: "dash", color: 'red', width: 2 }, show: true, color: '#4c5336' } }, data: [{ yAxis: 900 }] } }, { name: '预测数据', type: 'line', showSymbol: false, hoverAnimation: false, data: [], markLine: { itemStyle: { normal: { borderWidth: 1, lineStyle: { type: "dash", color: 'blue', width: 2 }, show: true, color: '#4c5336' } }, data: [{ yAxis: 900 }] } }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); setInterval(function () { for (var i = 0; i < 1; i++) { data.shift(); data.push(trueData(i)); } for (var i = 0; i < 1; i++) { predictdata.shift(); predictdata.push(predictData(i)); } myChart.setOption({ series: [{ data: data }, { data: predictdata }] }); }, 1000); } }) } </script> </body> </html> ``` 后端py,用的是flask框架: ``` import MySQLdb from flask import Flask, render_template, url_for import pymysql import pandas as pd import numpy as np from pandas import read_csv import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from sklearn.metrics import mean_squared_error from keras.models import Sequential from keras.layers import LSTM, Dense, Activation,Dropout import json import operator from functools import reduce import math import tensorflow as tf from keras import initializers import time # 生成Flask实例 app = Flask(__name__) @app.route("/") def hello(): return render_template('new_file.html') # /test路由 接收前端的Ajax请求 @app.route('/test', methods=['POST']) def my_echart(): # 连接数据库 conn = MySQLdb.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test', charset='utf8') cur = conn.cursor() sql = 'SELECT timepoint,value1 from timeseries' cur.execute(sql) u = cur.fetchall() timepoint = [] value1 = [] for data in u: value1.append(data[1]) timepoint.append(data[0]) print(value1) # 转换成json格式 jsonData = {} jsonData['value1'] = value1 jsonData['timepoint']=timepoint # json.dumps()用于将dict类型的数据转换成str,因为如果直接将dict类型的数据写入json会报错,因此将数据写入时需要用到此函数 j = json.dumps(jsonData) cur.close() conn.close() # 在浏览器上渲染my_template.html模板(为了查看输出数据) return (j) if __name__ == '__main__': app.run(debug=True,port='5000') ``` 返回的数据是从mysql中读取的,现在我想用ajax的方法定时请求数据库的下一个数据到达前台,并且刷新页面显示出来,应该怎么修改代码? 数据库如下: ![图片说明](https://img-ask.csdn.net/upload/201905/24/1558685991_221903.jpg)
为什么nuxt.js无法安装node-sass?
1.npm 不管怎么样都安装不了 淘宝镜像也没用 2.每次安装后都卡在Downloading binary from https://github.com/sass/node-sass/releases/download/v4.12.0/win32-x64-64这里然后就报错 3.T.T小白求教 ``` PS E:\Users\FuYuHao\Desktop\sb\a\aaa> npm i node-sass > node-sass@4.12.0 install E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass > node scripts/install.js Downloading binary from https://github.com/sass/node-sass/releases/download/v4.12.0/win32-x64-64_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.12.0/win32-x64-64_binding.node": connect ETIMEDOUT 52.216.135.19:443 Timed out whilst downloading the prebuilt binary Hint: If github.com is not accessible in your location try setting a proxy via HTTP_PROXY, e.g. export HTTP_PROXY=http://example.com:1234 or configure npm proxy via npm config set proxy http://example.com:8080 > node-sass@4.12.0 postinstall E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass > node scripts/build.js Building: C:\Program Files\nodejs\node.exe E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= gyp info it worked if it ends with ok gyp verb cli [ 'C:\\Program Files\\nodejs\\node.exe', gyp verb cli 'E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-gyp\\bin\\node-gyp.js', gyp verb cli 'rebuild', gyp verb cli '--verbose', gyp verb cli '--libsass_ext=', gyp verb cli '--libsass_cflags=', gyp verb cli '--libsass_ldflags=', gyp verb cli '--libsass_library=' ] gyp info using node-gyp@3.8.0 gyp info using node@10.14.1 | win32 | x64 gyp verb command rebuild [] gyp verb command clean [] gyp verb clean removing "build" directory gyp verb command configure [] gyp verb check python checking for Python executable "python2" in the PATH gyp verb `which` failed Error: not found: python2 gyp verb `which` failed at getNotFoundError (E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:13:12) gyp verb `which` failed at F (E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:68:19) gyp verb `which` failed at E (E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:80:29) gyp verb `which` failed at E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:89:16 gyp verb `which` failed at E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\isexe\index.js:42:5 gyp verb `which` failed at E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\isexe\windows.js:36:5 gyp verb `which` failed at FSReqWrap.oncomplete (fs.js:154:21) gyp verb `which` failed python2 { Error: not found: python2 gyp verb `which` failed at getNotFoundError (E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:13:12) gyp verb `which` failed at F (E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:68:19) gyp verb `which` failed at E (E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:80:29) gyp verb `which` failed at E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\which\which.js:89:16 gyp verb `which` failed at E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\isexe\index.js:42:5 gyp verb `which` failed at E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\isexe\windows.js:36:5 gyp verb `which` failed at FSReqWrap.oncomplete (fs.js:154:21) gyp verb `which` failed stack: gyp verb `which` failed 'Error: not found: python2\n at getNotFoundError (E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\which\\which.js:13:12)\n at F (E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\which\\which.js:68:19)\n at E (E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\which\\which.js:80:29)\n at E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\which\\which.js:89:16\n at E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\isexe\\index.js:42:5\n at E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\isexe\\windows.js:36:5\n at FSReqWrap.oncomplete (fs.js:154:21)', gyp verb `which` failed code: 'ENOENT' } gyp verb check python checking for Python executable "python" in the PATH gyp verb `which` succeeded python C:\Python27\python.EXE gyp verb check python version `C:\Python27\python.EXE -c "import sys; print "2.7.15 gyp verb check python version .%s.%s" % sys.version_info[:3];"` returned: %j gyp verb get node dir no --target version specified, falling back to host node version: 10.14.1 gyp verb command install [ '10.14.1' ] gyp verb install input version string "10.14.1" gyp verb install installing version: 10.14.1 gyp verb install --ensure was passed, so won't reinstall if already installed gyp verb install version is already installed, need to check "installVersion" gyp verb got "installVersion" 9 gyp verb needs "installVersion" 9 gyp verb install version is good gyp verb get node dir target node version installed: 10.14.1 gyp verb build dir attempting to create "build" dir: E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build gyp verb build dir "build" dir needed to be created? E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build gyp verb find vs2017 Found installation at: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools gyp verb find vs2017 - Found Microsoft.VisualStudio.Component.Windows10SDK.17763 gyp verb find vs2017 - Found Microsoft.VisualStudio.Component.VC.Tools.x86.x64 gyp verb find vs2017 - Found Microsoft.VisualStudio.VC.MSBuild.Base gyp verb find vs2017 - Using this installation with Windows 10 SDK gyp verb find vs2017 using installation: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools gyp verb build/config.gypi creating config file gyp verb build/config.gypi writing out config file: E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\config.gypi gyp verb config.gypi checking for gypi file: E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\config.gypi gyp verb common.gypi checking for gypi file: E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\common.gypi gyp verb gyp gyp format was not specified; forcing "msvs" gyp info spawn C:\Python27\python.EXE gyp info spawn args [ 'E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-gyp\\gyp\\gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'msvs', gyp info spawn args '-G', gyp info spawn args 'msvs_version=2015', gyp info spawn args '-I', gyp info spawn args 'E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-sass\\build\\config.gypi', gyp info spawn args '-I', gyp info spawn args 'E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-gyp\\addon.gypi', gyp info spawn args '-I', gyp info spawn args 'C:\\Users\\FuYuHao\\.node-gyp\\10.14.1\\include\\node\\common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=C:\\Users\\FuYuHao\\.node-gyp\\10.14.1', gyp info spawn args '-Dnode_gyp_dir=E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-gyp', gyp info spawn args '-Dnode_lib_file=C:\\Users\\FuYuHao\\.node-gyp\\10.14.1\\<(target_arch)\\node.lib', gyp info spawn args '-Dmodule_root_dir=E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-sass', gyp info spawn args '-Dnode_engine=v8', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-sass\\build', gyp info spawn args '-Goutput_dir=.' ] gyp verb command build [] gyp verb build type Release gyp verb architecture x64 gyp verb node dev dir C:\Users\FuYuHao\.node-gyp\10.14.1 gyp verb found first Solution file build/binding.sln gyp verb using MSBuild: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe gyp info spawn args [ 'build/binding.sln', gyp info spawn args '/nologo', gyp info spawn args '/p:Configuration=Release;Platform=x64' ] 在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。 生成启动时间为 2019/5/29 22:01:12。 节点 1 上的项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.sln”(默认目标)。 ValidateSolutionConfiguration: 正在生成解决方案配置“Release|x64”。 项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.sln”(1)正在节点 1 上生成“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj.metaproj”(2) (默认目标)。 项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj.metaproj”(2)正在节点 1 上生成“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj”(3) (默认目标)。 PrepareForBuild: 正在创建目录“Release\obj\libsass\”。 正在创建目录“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\Release\”。 正在创建目录“Release\obj\libsass\libsass.tlog\”。 InitializeBuildStatus: 正在创建“Release\obj\libsass\libsass.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。 ClCompile: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\CL.exe /c /I"C:\Users\FuYuHao\.node-gyp\10.14.1\include\node" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\src" /I"C:\Use rs\FuYuHao\.node-gyp\10.14.1\deps\openssl\config" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\openssl\openssl\include" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\uv\include" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\zli b" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\v8\include" /I..\..\src\libsass\include /Z7 /nologo /W3 /WX- /diagnostics:classic /MP /Ox /Ob2 /Oi /Ot /Oy /GL /D NODE_GYP_MODULE_NAME=libsass /D USING_UV_SHARED=1 /D USING_ V8_SHARED=1 /D V8_DEPRECATION_WARNINGS=1 /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _HAS_EXCEPTIONS=0 /D "LIBSASS_VERSION=\"3.5.4\"" /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Z c:inline /GR- /Fo"Release\obj\libsass\\" /Fd"Release\obj\libsass\libsass.pdb" /Gd /TP /wd4351 /wd4355 /wd4800 /wd4251 /wd4275 /wd4244 /wd4267 /FC /errorReport:queue /GR /EHsc ..\..\src\libsass\src\ast.cpp ..\..\src\libs ass\src\ast_fwd_decl.cpp ..\..\src\libsass\src\backtrace.cpp ..\..\src\libsass\src\base64vlq.cpp ..\..\src\libsass\src\bind.cpp ..\..\src\libsass\src\check_nesting.cpp ..\..\src\libsass\src\color_maps.cpp ..\..\src\libs ass\src\constants.cpp ..\..\src\libsass\src\context.cpp ..\..\src\libsass\src\cssize.cpp ..\..\src\libsass\src\emitter.cpp ..\..\src\libsass\src\environment.cpp ..\..\src\libsass\src\error_handling.cpp ..\..\src\libsass \src\eval.cpp ..\..\src\libsass\src\expand.cpp ..\..\src\libsass\src\extend.cpp ..\..\src\libsass\src\file.cpp ..\..\src\libsass\src\functions.cpp ..\..\src\libsass\src\inspect.cpp ..\..\src\libsass\src\json.cpp ..\..\s rc\libsass\src\lexer.cpp ..\..\src\libsass\src\listize.cpp ..\..\src\libsass\src\memory\SharedPtr.cpp ..\..\src\libsass\src\node.cpp ..\..\src\libsass\src\operators.cpp ..\..\src\libsass\src\output.cpp ..\..\src\libsass \src\parser.cpp ..\..\src\libsass\src\plugins.cpp ..\..\src\libsass\src\position.cpp ..\..\src\libsass\src\prelexer.cpp ..\..\src\libsass\src\remove_placeholders.cpp ..\..\src\libsass\src\sass.cpp ..\..\src\libsass\src\ sass2scss.cpp ..\..\src\libsass\src\sass_context.cpp ..\..\src\libsass\src\sass_functions.cpp ..\..\src\libsass\src\sass_util.cpp ..\..\src\libsass\src\sass_values.cpp ..\..\src\libsass\src\source_map.cpp ..\..\src\libs ass\src\subset_map.cpp ..\..\src\libsass\src\to_c.cpp ..\..\src\libsass\src\to_value.cpp ..\..\src\libsass\src\units.cpp ..\..\src\libsass\src\utf8_string.cpp ..\..\src\libsass\src\util.cpp ..\..\src\libsass\src\values. cpp cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] ast.cpp cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] ast_fwd_decl.cpp cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] backtrace.cpp cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] base64vlq.cpp bind.cpp check_nesting.cpp color_maps.cpp constants.cpp context.cpp cssize.cpp emitter.cpp environment.cpp error_handling.cpp eval.cpp expand.cpp extend.cpp file.cpp functions.cpp inspect.cpp json.cpp e:\users\fuyuhao\desktop\sb\a\aaa\node_modules\node-sass\src\libsass\src\json.cpp(26): warning C4005: “_CRT_NONSTDC_NO_DEPRECATE”: 宏重定义 [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxp roj] e:\users\fuyuhao\desktop\sb\a\aaa\node_modules\node-sass\src\libsass\src\json.cpp: note: 参见“_CRT_NONSTDC_NO_DEPRECATE”的前一个定义 lexer.cpp listize.cpp SharedPtr.cpp node.cpp operators.cpp output.cpp parser.cpp plugins.cpp position.cpp prelexer.cpp remove_placeholders.cpp sass.cpp sass2scss.cpp e:\users\fuyuhao\desktop\sb\a\aaa\node_modules\node-sass\src\libsass\src\sass2scss.cpp(9): warning C4005: “_CRT_NONSTDC_NO_DEPRECATE”: 宏重定义 [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass. vcxpr oj] e:\users\fuyuhao\desktop\sb\a\aaa\node_modules\node-sass\src\libsass\src\sass2scss.cpp: note: 参见“_CRT_NONSTDC_NO_DEPRECATE”的前一个定义 sass_context.cpp sass_functions.cpp sass_util.cpp sass_values.cpp source_map.cpp subset_map.cpp to_c.cpp to_value.cpp units.cpp utf8_string.cpp util.cpp values.cpp C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\CL.exe /c /I"C:\Users\FuYuHao\.node-gyp\10.14.1\include\node" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\src" /I"C:\Use rs\FuYuHao\.node-gyp\10.14.1\deps\openssl\config" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\openssl\openssl\include" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\uv\include" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\zli b" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\v8\include" /I..\..\src\libsass\include /Z7 /nologo /W3 /WX- /diagnostics:classic /MP /Ox /Ob2 /Oi /Ot /Oy /GL /D NODE_GYP_MODULE_NAME=libsass /D USING_UV_SHARED=1 /D USING_ V8_SHARED=1 /D V8_DEPRECATION_WARNINGS=1 /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _HAS_EXCEPTIONS=0 /D "LIBSASS_VERSION=\"3.5.4\"" /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Z c:inline /GR- /Fo"Release\obj\libsass\\" /Fd"Release\obj\libsass\libsass.pdb" /Gd /TC /wd4351 /wd4355 /wd4800 /wd4251 /wd4275 /wd4244 /wd4267 /FC /errorReport:queue /GR /EHsc ..\..\src\libsass\src\cencode.c cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] cencode.c Lib: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\Lib.exe /OUT:"E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\Release\libsass.lib" /NOLOGO /MACHINE :X64 /LTCG:INCREMENTAL Release\obj\libsass\ast.obj Release\obj\libsass\ast_fwd_decl.obj Release\obj\libsass\backtrace.obj Release\obj\libsass\base64vlq.obj Release\obj\libsass\bind.obj Release\obj\libsass\cencode.obj Release\obj\libsass\check_nesting.obj Release\obj\libsass\color_maps.obj Release\obj\libsass\constants.obj Release\obj\libsass\context.obj Release\obj\libsass\cssize.obj Release\obj\libsass\emitter.obj Release\obj\libsass\environment.obj Release\obj\libsass\error_handling.obj Release\obj\libsass\eval.obj Release\obj\libsass\expand.obj Release\obj\libsass\extend.obj Release\obj\libsass\file.obj Release\obj\libsass\functions.obj Release\obj\libsass\inspect.obj Release\obj\libsass\json.obj Release\obj\libsass\lexer.obj Release\obj\libsass\listize.obj Release\obj\libsass\SharedPtr.obj Release\obj\libsass\node.obj Release\obj\libsass\operators.obj Release\obj\libsass\output.obj Release\obj\libsass\parser.obj Release\obj\libsass\plugins.obj Release\obj\libsass\position.obj Release\obj\libsass\prelexer.obj Release\obj\libsass\remove_placeholders.obj Release\obj\libsass\sass.obj Release\obj\libsass\sass2scss.obj Release\obj\libsass\sass_context.obj Release\obj\libsass\sass_functions.obj Release\obj\libsass\sass_util.obj Release\obj\libsass\sass_values.obj Release\obj\libsass\source_map.obj Release\obj\libsass\subset_map.obj Release\obj\libsass\to_c.obj Release\obj\libsass\to_value.obj Release\obj\libsass\units.obj Release\obj\libsass\utf8_string.obj Release\obj\libsass\util.obj Release\obj\libsass\values.obj libsass.vcxproj -> E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\Release\\libsass.lib FinalizeBuildStatus: 正在删除文件“Release\obj\libsass\libsass.tlog\unsuccessfulbuild”。 正在对“Release\obj\libsass\libsass.tlog\libsass.lastbuildstate”执行 Touch 任务。 已完成生成项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj”(默认目标)的操作。 项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj.metaproj”(2)正在节点 1 上生成“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj”(4) (默认目标)。 PrepareForBuild: 正在创建目录“Release\obj\binding\”。 正在创建目录“Release\obj\binding\binding.tlog\”。 InitializeBuildStatus: 正在创建“Release\obj\binding\binding.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。 ClCompile: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\CL.exe /c /I"C:\Users\FuYuHao\.node-gyp\10.14.1\include\node" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\src" /I"C:\Use rs\FuYuHao\.node-gyp\10.14.1\deps\openssl\config" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\openssl\openssl\include" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\uv\include" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\zli b" /I"C:\Users\FuYuHao\.node-gyp\10.14.1\deps\v8\include" /I..\..\nan /I..\src\libsass\include /Z7 /nologo /W3 /WX- /diagnostics:classic /MP /Ox /Ob2 /Oi /Ot /Oy /GL /D NODE_GYP_MODULE_NAME=binding /D USING_UV_SHARED=1 /D USING_V8_SHARED=1 /D V8_DEPRECATION_WARNINGS=1 /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _HAS_EXCEPTIONS=0 /D BUILDING_NODE_EXTENSION /D _WINDLL /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR- /Fo"Release\obj\binding\\" /Fd"Release\obj\binding\vc141.pdb" /Gd /TP /wd4351 /wd4355 /wd4800 /wd4251 /wd4275 /wd4244 /wd4267 /FC /errorReport:queue /Zc:threadSafeInit- ..\src\binding.cpp . .\src\create_string.cpp ..\src\custom_function_bridge.cpp ..\src\custom_importer_bridge.cpp ..\src\sass_context_wrapper.cpp ..\src\sass_types\boolean.cpp ..\src\sass_types\color.cpp ..\src\sass_types\error.cpp ..\src\sa ss_types\factory.cpp ..\src\sass_types\list.cpp ..\src\sass_types\map.cpp ..\src\sass_types\null.cpp ..\src\sass_types\number.cpp ..\src\sass_types\string.cpp "E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-gyp\src \win_delay_load_hook.cc" binding.cpp create_string.cpp custom_function_bridge.cpp custom_importer_bridge.cpp sass_context_wrapper.cpp boolean.cpp color.cpp error.cpp factory.cpp list.cpp map.cpp null.cpp number.cpp string.cpp win_delay_load_hook.cc Link: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\Release\binding.n ode" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib DelayImp.lib "C:\Users\FuYuHao\.node-gyp\10.14.1\x64\node.lib" Delayimp.lib /DELAYLOAD:iojs.exe /DELAYLOAD:node.exe /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\Release\bindi ng.pdb" /MAP /MAPINFO:EXPORTS /OPT:REF /OPT:ICF /TLBID:1 /RELEASE /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ignore:4199 /LTCG:INCREMENTAL /DLL Release\obj\binding\binding.obj Release\obj\binding\create_string.obj Release\obj\binding\custom_function_bridge.obj Release\obj\binding\custom_importer_bridge.obj Release\obj\binding\sass_context_wrapper.obj Release\obj\binding\boolean.obj Release\obj\binding\color.obj Release\obj\binding\error.obj Release\obj\binding\factory.obj Release\obj\binding\list.obj Release\obj\binding\map.obj Release\obj\binding\null.obj Release\obj\binding\number.obj Release\obj\binding\string.obj Release\obj\binding\win_delay_load_hook.obj "E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\Release\libsass.lib" C:\Users\FuYuHao\.node-gyp\10.14.1\x64\node.lib : fatal error LNK1107: 文件无效或损坏: 无法在 0x39F993 处读取 [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj] 已完成生成项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj”(默认目标)的操作 - 失败。 已完成生成项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj.metaproj”(默认目标)的操作 - 失败。 已完成生成项目“E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.sln”(默认目标)的操作 - 失败。 生成失败。 “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.sln”(默认目标) (1) -> “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj.metaproj”(默认目标) (2) -> “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj”(默认目标) (3) -> (ClCompile 目标) -> cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] e:\users\fuyuhao\desktop\sb\a\aaa\node_modules\node-sass\src\libsass\src\json.cpp(26): warning C4005: “_CRT_NONSTDC_NO_DEPRECATE”: 宏重定义 [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vc xproj ] e:\users\fuyuhao\desktop\sb\a\aaa\node_modules\node-sass\src\libsass\src\sass2scss.cpp(9): warning C4005: “_CRT_NONSTDC_NO_DEPRECATE”: 宏重定义 [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsas s.vcx proj] “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.sln”(默认目标) (1) -> “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj.metaproj”(默认目标) (2) -> “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj”(默认目标) (3) -> cl : 命令行 warning D9025: 正在重写“/GR-”(用“/GR”) [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\src\libsass.vcxproj] “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.sln”(默认目标) (1) -> “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj.metaproj”(默认目标) (2) -> “E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj”(默认目标) (4) -> (Link 目标) -> C:\Users\FuYuHao\.node-gyp\10.14.1\x64\node.lib : fatal error LNK1107: 文件无效或损坏: 无法在 0x39F993 处读取 [E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass\build\binding.vcxproj] 8 个警告 1 个错误 已用时间 00:00:24.13 gyp ERR! build error gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-gyp\lib\build.js:262:23) gyp ERR! stack at ChildProcess.emit (events.js:182:13) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:240:12) gyp ERR! System Windows_NT 10.0.17763 gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "E:\\Users\\FuYuHao\\Desktop\\sb\\a\\aaa\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" gyp ERR! cwd E:\Users\FuYuHao\Desktop\sb\a\aaa\node_modules\node-sass gyp ERR! node -v v10.14.1 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok Build failed with error code: 1 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.0.7 (node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.0.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\watchpack\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\nodemon\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sass@4.12.0 postinstall: `node scripts/build.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the node-sass@4.12.0 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\FuYuHao\AppData\Roaming\npm-cache\_logs\2019-05-29T14_01_39_903Z-debug.log PS E:\Users\FuYuHao\Desktop\sb\a\aaa> ```
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
相关热词 c#中dns类 c#合并的excel c# implicit c#怎么保留3个小数点 c# 串口通信、 网络调试助手c# c# 泛型比较大小 c#解压分卷问题 c#启动居中 c# 逻辑或运算符
立即提问