小编Jer*_*ril的帖子

使用Python请求发布JSON

我需要将JSON从客户端POST到服务器.我正在使用Python 2.7.1和simplejson.客户端正在使用请求.服务器是CherryPy.我可以从服务器获取硬编码的JSON(代码未显示),但是当我尝试将JSON发送到服务器时,我得到"400 Bad Request".

这是我的客户端代码:

data = {'sender':   'Alice',
    'receiver': 'Bob',
    'message':  'We did it!'}
data_json = simplejson.dumps(data)
payload = {'json_payload': data_json}
r = requests.post("http://localhost:8080", data=payload)
Run Code Online (Sandbox Code Playgroud)

这是服务器代码.

class Root(object):

    def __init__(self, content):
        self.content = content
        print self.content  # this works

    exposed = True

    def GET(self):
        cherrypy.response.headers['Content-Type'] = 'application/json'
        return simplejson.dumps(self.content)

    def POST(self):
        self.content = simplejson.loads(cherrypy.request.body.read())
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python json cherrypy python-requests

545
推荐指数
8
解决办法
71万
查看次数

Python的拼写检查器

我是Python和NLTK的新手.我正在忙于一个可以执行拼写检查的应用程序(用正确拼写的单词替换拼写错误的单词),我目前正在使用Python-2.7上的附魔库,PyEnchant和NLTK库.下面的代码是处理更正/替换的类.

from nltk.metrics import edit_distance

class SpellingReplacer(object):
    def __init__(self, dict_name = 'en_GB', max_dist = 2):
        self.spell_dict = enchant.Dict(dict_name)
        self.max_dist = 2

    def replace(self, word):
        if self.spell_dict.check(word):
            return word
        suggestions = self.spell_dict.suggest(word)

        if suggestions and edit_distance(word, suggestions[0]) <= self.max_dist:
            return suggestions[0]
        else:
            return word
Run Code Online (Sandbox Code Playgroud)

我编写了一个函数,它接受单词列表并对每个单词执行def替换并返回单词列表但拼写正确.

def spell_check(word_list):
    checked_list = []
    for item in word_list:
        replacer = SpellingReplacer()
        r = replacer.replace(item)
        checked_list.append(r)
    return checked_list

>>> word_list = ['car', 'colour']
>>> spell_check(words)
['car', 'color']
Run Code Online (Sandbox Code Playgroud)

现在我不喜欢这个,因为它不是很准确,我正在寻找一种方法来实现单词的拼写检查和替换.我还需要一些可以解决像"caaaar"这样的拼写错误的东西吗?有没有更好的方法来执行拼写检查?如果是这样,他们是什么?谷歌如何做到这一点,因为他们的拼写建议非常好?有什么建议

spell-checking nltk python-2.7 pyenchant

28
推荐指数
4
解决办法
10万
查看次数

我如何阅读从Spark编写的PySpark中的镶木地板?

我在分析中使用两个Jupyter笔记本来做不同的事情.在我的Scala笔记本中,我将一些已清理的数据写入镶木地板:

partitionedDF.select("noStopWords","lowerText","prediction").write.save("swift2d://xxxx.keystone/commentClusters.parquet")
Run Code Online (Sandbox Code Playgroud)

然后我去我的Python笔记本读取数据:

df = spark.read.load("swift2d://xxxx.keystone/commentClusters.parquet")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

AnalysisException: u'Unable to infer schema for ParquetFormat at swift2d://RedditTextAnalysis.keystone/commentClusters.parquet. It must be specified manually;'
Run Code Online (Sandbox Code Playgroud)

我查看了spark文档,我认为不应该要求我指定一个模式.有没有人碰到这样的事情?我保存/加载时应该做些什么吗?数据将在对象存储中登陆.

编辑:我在读取和写入时都会唱出spark 2.0.

edit2:这是在Data Science Experience的一个项目中完成的.

python scala apache-spark pyspark data-science-experience

25
推荐指数
2
解决办法
4万
查看次数

Pandas - 使用datetimeindex对数据帧进行排序

以下是我的数据框,其中包含多个Excel文件的值.我想做一个时间序列分析,所以我把索引作为datetimeindex.但我的索引没有根据日期安排.以下是我的数据框:

    Item Details    Unit    Op. Qty Price   Op. Amt.    Cl. Qty Price.1 Cl. Amt.
Month                               
2013-04-01  5 In 1  Pcs -56.0   172.78  -9675.58    -68.0   175.79  -11953.96
2013-04-01  Adaptor Pcs -17.0   9.00    -152.99 -17.0   9.00    -152.99
2013-04-01  Agro Tape   Pcs -2.0    26.25   -52.50  -2.0    26.25   -52.50
...
2014-01-01  12" Angal   Pcs -6.0    31.50   -189.00 -6.0    31.50   -189.00
2014-01-01  13 Mm Electrical Drill Check    Set -1.0    247.50  -247.50 -1.0    247.50  -247.50
2014-01-01  14" Blad    Pcs -5.0    157.49  -787.45 -5.0    157.49 …
Run Code Online (Sandbox Code Playgroud)

python sorting date pandas datetimeindex

9
推荐指数
1
解决办法
1万
查看次数

ReactJS - 多行文本区域

我正在尝试使用ReactJS创建多行文本输入字段.我创建了这个组件:

var TextInput = React.createClass({
  getInitialState: function(){
    return {currentValue: this.props.children}
  },

  handleChange: function(event){
  //handler
  },

  render: function(){
    return (
        <textarea name="body"
                  onChange={this.handleChange}
                  value={this.state.currentValue}/>
    )
  }
});
Run Code Online (Sandbox Code Playgroud)

我这样呈现:

# jinja2 template
React.render(
  <TextInput>{{ post.body }}</TextInput>,                  
  document.getElementById('post-editing')
);
Run Code Online (Sandbox Code Playgroud)

问题:如果{{ post.body }}是这样的话#Title \n text,textarea将它显示在一行中.我#Title text在我的textarea 看到没有换行符.<textarea>使用ReactJS 设置价值的正确方法是什么?

html javascript jinja2 reactjs

8
推荐指数
1
解决办法
3万
查看次数

类型错误:“list”和“int”实例之间不支持“&lt;”

我正在尝试在 Python 中运行一段简单的代码,尝试将文本文件放入列表中并收到以下错误消息:

类型错误:“list”和“int”实例之间不支持“<”

这是代码:

def MAINLOOP ():
    import random
    listofkeywords = []
    attempts = 0
    complete = ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])
    while complete < 30:
        question = random.randint(0,14)
        print(question)

MAINLOOP()
def IMPORTKEYWORDS():
    thekeywords = open("keywords.txt","r")
    listofkeywords == thekeywords
Run Code Online (Sandbox Code Playgroud)

python

6
推荐指数
1
解决办法
9万
查看次数

使用pyttsx包时,没有名为Win32com.client的模块错误

今天,在Quora上冲浪时,我遇到了python可以做的惊人事情的答案.我试图使用pyttsx 文本到语音转换器,这给了我一个No module named Win32com.client错误.

关于这个错误有很多答案,但是大多数答案还不够(至少对我而言),因为提出的解决方案不符合要求.

对于初学者,我使用的是Python2.7,并且C:/Windows/System32在我的C:/Python27/Scripts文件夹中与关键字"pywin32"相关的任何脚本中都没有DLL .我需要一个具体的解决方案

这是我到目前为止所尝试的:

>>> import pyttsx
>>> engine = pyttsx.init()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pyttsx\__init__.py", line 39, in init
eng = Engine(driverName, debug)
File "C:\Python27\lib\site-packages\pyttsx\engine.py", line 45, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "C:\Python27\lib\site-packages\pyttsx\driver.py", line 64, in __init__
self._module = __import__(name, globals(), locals(), [driverName])
File "C:\Python27\lib\site-packages\pyttsx\drivers\sapi5.py", line 19, in <module>
import win32com.client …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.x pyttsx

5
推荐指数
1
解决办法
1万
查看次数

Python - 美丽的汤或 soup.find_all(....) 中的条件

我们正在废弃 Amazon.in 网站来检索任何产品的价格。所有产品的“span”标签中的“id”属性都有不同的值,例如;

 id = 'priceblock_ourprice',  id = 'priceblock_saleprice', and  id = 'priceblock_dealprice'.
Run Code Online (Sandbox Code Playgroud)

我们的任务是使用 Beautiful Soup 中的 find_all(..) 方法检索产品的价格。根据我们的基础知识,我们只能向 find_all(..) 方法提供一个参数,如下所示:

m = soup1.find_all('span', {'id': 'priceblock_ourprice'})
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 OR 条件向 find_all(..) 方法提供多个参数?

以下是具有相同“id”属性的不同值的链接:

链接1

链接2

链接3

感谢您的帮助!

python beautifulsoup

5
推荐指数
1
解决办法
6152
查看次数

Python selenium - 修改网页源代码

我正在使用 Python selenium 来自动化我的出勤记录。它工作正常,现在我想通过修改源代码来尝试。我看到很少有帖子说它可以使用修改driver.execute_script()并且适用于 JavaScript,但在我的情况下,我需要修改select标签下的源代码。我能够使用inspect element. 以下是select标签源码:

<select name="date1">
    <option value="2016-09-17">2016-09-17</option>
    <option value="2016-09-16">2016-09-16</option>
    <option value="2016-09-14">2016-09-14</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我试着用driver.execute_script(). 以下是我的代码:

sel = driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/form/table/tbody/tr[2]/td[3]/select')
input_list = sel.find_element_by_tag_name('option')
cmd = "input_list.value = '2016-09-07'"
driver.execute_script(cmd)
Run Code Online (Sandbox Code Playgroud)

但是上面的代码给了我以下错误:

selenium.common.exceptions.WebDriverException:消息:input_list 未定义

我可以使用inspect element窗口修改源代码。有没有办法使用selenium修改源代码?

python selenium

5
推荐指数
1
解决办法
5706
查看次数

vscode - 在 vscode 中交换选定的文本

我最近开始使用 VSCode,我真的很喜欢它。我在谷歌上搜索了我的问题,并没有找到与 VSCode 相关的任何答案。

考虑我有以下代码:

if (a === 'some condition') 
  return true
else
  return false
Run Code Online (Sandbox Code Playgroud)

如果我想交换或切换返回,即,我选择truefalse并且是否有任何键盘快捷键或键绑定来交换我的选择。

任何帮助将不胜感激。

visual-studio-code

5
推荐指数
1
解决办法
2550
查看次数